前端反卷计划-组件库-01-环境搭建

简介: 前端组件库系列:环境搭建

Hi, 大家好!我是程序员库里。

今天开始分享如何从0搭建UI组件库。这也是前端反卷计划中的一项。

在接下来的日子,我会持续分享前端反卷计划中的每个知识点。

以下是前端反卷计划的内容:

请在此添加图片描述

请在此添加图片描述

目前这些内容持续更新到了我的 学习文档 中。感兴趣的欢迎一起学习!

环境搭建

组件库名字

因为我们的组件库要发布到npm上面,所以你的组件库名称不能和其他npm包的名称重复。

我起的组件库名称是叫:curry-design

首先去 npm 仓库查找curry-design,看有没有人在使用。。

https://www.npmjs.com/search?q=curry-design

请在此添加图片描述

从结果可以看到,这个名字没有其他包在用,所以我可以使用这个名字作为组件库的包名。

如果你起的名字,在npm里面查询到,则需要换个名字。

创建项目

使用create-react-app创建项目

在终端执行如下命令:

 npx create-react-app curry-design --template typescript

执行后,就会下载成功react+ts模版

请在此添加图片描述

创建后的目录如下:

请在此添加图片描述

配置eslint

  1. 创建.eslintrc.js
module.exports = {

  env: {

    browser: true,

    es2021: true,

  },

  extends: [

    'eslint:recommended',  // 使用 ESLint 推荐的规则

    'plugin:react/recommended',  // 使用 React 推荐的规则

    'plugin:@typescript-eslint/recommended',  // 使用 TypeScript 推荐的规则

  ],

  parser: '@typescript-eslint/parser',  // 使用 TypeScript 解析器

  parserOptions: {

    ecmaVersion: 2021,  // ECMAScript 版本,根据需要进行更改

    sourceType: 'module',  // 模块导入方式

    ecmaFeatures: {

      jsx: true,  // 启用JSX语法支持

    },

  },

  plugins: [

    'react',  // React相关的ESLint插件

    '@typescript-eslint',  // TypeScript相关的ESLint插件

  ],

  rules: {

    // 在这里添加你的自定义规则

    'no-unused-vars': 'off',  // 关闭未使用的变量检查,可以根据需要启用

    '@typescript-eslint/no-unused-vars': ['error'],  // 使用TypeScript的规则检查未使用的变量

    'react/prop-types': 'off',  // 关闭prop-types检查,如果你不使用prop-types

    'react/react-in-jsx-scope': 'off',  // 关闭React在JSX中的全局引入,适用于React 17+

    'react/display-name': 'off',  // 关闭组件名称的检查,如果你不需要

  },

  settings: {

    react: {

      version: 'detect',  // 自动检测React版本

    },

  },

};
  1. 增加 eslint scripts命令
 "lint": "npx eslint .",
  1. 安装 eslint vscode插件
  2. 执行lint命令进行检测

请在此添加图片描述

配置prettier

  1. 安装插件
pnpm i prettier eslint-config-prettier eslint-plugin-prettier --save-dev
  1. 在.eslintrc.js中添加
extends: [

  'plugin:prettier/recommended' // 新增

],
  1. 安装prettier vs code插件

请在此添加图片描述

  1. 增加format scripts命令
"format": " prettier --write 'src/\*\*/\*.+(js|ts|jsx|tsx)' "
  1. 执行 pnpm format进行格式化

请在此添加图片描述

  1. 在根目录创建vscode/settings.json,这个告诉vscode进行的配置。
{

    "editor.codeActionsOnSave": {

        "source.fixAll.eslint": true // 保存后字段格式化

    },

    // 检查识别不出来的单词

    "cSpell.words": [

        "ahooks",

        "antd",

        "Appstore",

        "clonedeep",

        "craco",

        "downarrow",

        "immer",

        "mockjs",

        "Popconfirm",

        "qrcode",

        "reduxjs",

        "uparrow"

    ]

}
  1. 可以修改自己想要的配置,在根目录创建.prettierrc.js,在这个文件进行配置
module.exports = {

  // 箭头函数只有一个参数的时候可以忽略括号

  arrowParens: 'avoid',

  // 括号内部不要出现空格

  bracketSpacing: true,

  // 行结束符使用 Unix 格式

  endOfLine: 'lf',

  // true: Put > on the last line instead of at a new line

  jsxBracketSameLine: false,

  // 行宽

  printWidth: 100,

  // 换行方式

  proseWrap: 'preserve',

  // 分号

  semi: false,

  // 使用单引号

  singleQuote: true,

  // 缩进

  tabWidth: 2,

  // 使用 tab 缩进

  useTabs: false,

  // 后置逗号,多行对象、数组在最后一行增加逗号

  trailingComma: 'es5',

  parser: 'typescript',

}

husky检查代码

  1. 安装
pnpm i husky -D
  1. 执行命令
npm pkg set scripts.prepare="husky install"

npm run prepare

npx husky add .husky/pre-commit "npm run lint"

npx husky add .husky/pre-commit "npm run format"

npx husky add .husky/pre-commit "git add ."

执行上述命令后,就在目录创建husky文件

请在此添加图片描述

在git commit 提交的时候,就会按上述步骤检查代码风格。

commit lint

为了规范commit的描述。

  1. 在git commit的时候进行lint,执行下面命令。下面两个命令一个是mac,一个是windows,按需执行。
// mac

npm install --save-dev @commitlint/{config-conventional,cli}

// For Windows:

npm install --save-dev @commitlint/config-conventional @commitlint/cli
  1. 配置,在终端输入下面命令
echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js
  1. 增加hook,输入执行下面命令
npx husky add .husky/commit-msg  'npx --no -- commitlint --edit ${1}'

经过上面执行,会生成文件如下:

请在此添加图片描述

5.这样在git commit的时候,如果描述不对,就会出错。

错误commit: 提交失败

请在此添加图片描述

正确commit:提交正常

请在此添加图片描述

持续更新

目前这些内容持续更新到了我的 学习文档 中。感兴趣的欢迎一起学习!

相关文章
|
15天前
|
数据采集 前端开发 JavaScript
《花100块做个摸鱼小网站! 》第四篇—前端应用搭建和完成第一个热搜组件
本文档详细介绍了从零开始搭建一个包含前后端交互的热搜展示项目的全过程。通过本教程,读者不仅能学习到完整的项目开发流程,还能掌握爬虫技术和前后端交互的具体实践。适合有一定编程基础并对项目实战感兴趣的开发者参考。
58 1
|
12天前
|
JavaScript 前端开发 开发者
哇塞!Vue.js 与 Web Components 携手,掀起前端组件复用风暴,震撼你的开发世界!
【8月更文挑战第30天】这段内容介绍了Vue.js和Web Components在前端开发中的优势及二者结合的可能性。Vue.js提供高效简洁的组件化开发,单个组件包含模板、脚本和样式,方便构建复杂用户界面。Web Components作为新兴技术标准,利用自定义元素、Shadow DOM等技术创建封装性强的自定义HTML元素,实现跨框架复用。结合二者,不仅增强了Web Components的逻辑和交互功能,还实现了Vue.js组件在不同框架中的复用,提高了开发效率和可维护性。未来前端开发中,这种结合将大有可为。
50 0
|
11天前
|
Android开发 iOS开发 C#
Xamarin:用C#打造跨平台移动应用的终极利器——从零开始构建你的第一个iOS与Android通用App,体验前所未有的高效与便捷开发之旅
【8月更文挑战第31天】Xamarin 是一个强大的框架,允许开发者使用单一的 C# 代码库构建高性能的原生移动应用,支持 iOS、Android 和 Windows 平台。作为微软的一部分,Xamarin 充分利用了 .NET 框架的强大功能,提供了丰富的 API 和工具集,简化了跨平台移动应用开发。本文通过一个简单的示例应用介绍了如何使用 Xamarin.Forms 快速创建跨平台应用,包括设置开发环境、定义用户界面和实现按钮点击事件处理逻辑。这个示例展示了 Xamarin.Forms 的基本功能,帮助开发者提高开发效率并实现一致的用户体验。
23 0
|
11天前
|
前端开发 UED 开发者
React组件优化全攻略:深度解析让你的前端应用飞速运行的秘诀——从PureComponent到React.memo的彻底性能比较
【8月更文挑战第31天】在构建现代Web应用时,性能是提升用户体验的关键因素。React作为主流前端库,其组件优化尤为重要。本文深入探讨了React组件优化策略,包括使用`PureComponent`、`React.memo`及避免不必要的渲染等方法,帮助开发者显著提升应用性能。通过实践案例对比优化前后效果,不仅提高了页面渲染速度,还增强了用户体验。优化React组件是每个开发者必须关注的重点。
22 0
|
12天前
|
JavaScript 前端开发
揭秘Vue.js组件魔法:如何轻松驾驭前端代码,让维护变得轻而易举?
【8月更文挑战第30天】本文探讨了如何利用Vue.js的组件化开发提升前端代码的可维护性。组件化开发将复杂页面拆分为独立、可复用的组件,提高开发效率和代码可维护性。Vue.js支持全局及局部组件注册,并提供了多种组件间通信方式如props、事件等。通过示例展示了组件定义、数据传递及复用组合的方法,强调了组件化开发在实际项目中的重要性。
12 0
|
21天前
|
前端开发 JavaScript 机器人
中后台前端开发问题之动态标注组件渲染到界面上如何解决
中后台前端开发问题之动态标注组件渲染到界面上如何解决
25 0
|
30天前
|
Web App开发 前端开发 JavaScript
React——前端开发中模块与组件【四】
React——前端开发中模块与组件【四】
25 0
|
30天前
|
存储 前端开发 JavaScript
前端语言串讲 | 青训营笔记
前端语言串讲 | 青训营笔记
20 0
|
3月前
|
JSON 前端开发 JavaScript
前端Ajax、Axios和Fetch的用法和区别笔记
前端Ajax、Axios和Fetch的用法和区别笔记
62 2
|
3月前
|
前端开发 JavaScript 数据库
如何实现前后端分离-----前端笔记
如何实现前后端分离-----前端笔记