从零搭建一个组件库 -- 项目搭建

项目搭建

  • 1、新建一个文件夹 使用【 md 文件名 或 mkdir 文件名 】来创建。
    创建文件夹
  • 2、cd 文件名 进入文件目录
    在这里插入图片描述
  • 3、 在当前目录下创建一个新的 package.json 文件
pnpm init

在这里插入图片描述

  • 4、mkdir packages 创建一个名为 packages 的目录,里面可以存放你要开发的项目,比如 components 和 cli。这样的组织结构可以让你更好地管理和组织项目代码。

  • 5、创建一个名为 pnpm-workspace.yaml 的文件,并在其中指定你的 packages。

    这将告诉 PNPM 工作区,你的项目使用了工作区特性,并且指定了包含在工作区中的包的位置。在这个示例中,packages/* 表示 packages 目录下的所有包都被包含在工作区中。

    # pnpm-workspace.yaml
    packages:
      - 'packages/*'
    
  • 6、安装 TypeScript 并初始化 tsconfig.json 文件,你可以按照以下步骤进行:

    安装 TypeScript:在项目根目录下执行以下命令安装 TypeScript(如果还没有安装)

    # -w 表示在要把包下载到根目录
    pnpm add typescript -D -w
    

    初始化 tsconfig.json 文件:在项目根目录下执行以下命令初始化 tsconfig.json 文件

    npx tsc --init
    

    这将在项目根目录下生成一个默认的 tsconfig.json 文件,你可以根据需要对其进行调整。
    在这里插入图片描述

添加代码规范

prettier

  • 安装依赖
pnpm add prettier -D -w
  • 根目录创建 .prettierrc.js
module.exports = {
  semi: false,
  singleQuote: true,
  printWidth: 80,
  trailingComma: 'none',
  arrowParens: 'avoid'
}

eslint

  • 安装依赖
pnpm add eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin -D -w
pnpm add eslint-config-prettier eslint-plugin-prettier -D -w
  • 根目录创建 .eslint.js
module.exports = {
  parser: '@typescript-eslint/parser',
  extends: [
    'eslint:recommended',
    'plugin:@typescript-eslint/recommended',
    'prettier',
    'plugin:prettier/recommended'
  ],
  env: {
    browser: true,
    es2021: true
  },
  extends: ['eslint:recommended'],
  plugins: ['@typescript-eslint', 'prettier'],
  parserOptions: {
    ecmaVersion: 'latest',
    sourceType: 'module'
  },
  rules: {
    'prettier/prettier': 'error',
    'no-extra-semi': 'off',
    '@typescript-eslint/camelcase': 'off',
    '@typescript-eslint/ban-ts-ignore': 'off',
    '@typescript-eslint/no-var-requires': 'off',
    '@typescript-eslint/no-extra-semi': 'off',
    '@typescript-eslint/no-explicit-any': 'off',
    '@typescript-eslint/no-empty-function': 'off',
    '@typescript-eslint/no-non-null-assertion': 'off',
    '@typescript-eslint/explicit-function-return-type': 'off',
    '@typescript-eslint/explicit-module-boundary-types': 'off',
    '@typescript-eslint/no-empty-interface': 'off'
  }
}
  • package.json 中添加执行命令
"scripts": {
  "prettier": "prettier --write .",
  "lint": "eslint --ext .ts packages/*/**.ts",
  "lint:fix": "eslint --ext .ts packages/*/**.ts --fix"
},

husky + lint-staged

husky 和 lint-staged 是两个常用的工具,用于在代码提交前进行代码规范检查和格式化。
husky 哈士奇,代码提交前可以执行自定义 git hooks
在代码提交之前,进行代码规则检查能够确保进入 git 库的代码都是符合代码规则的。但是整个项目上运行 lint 速度会很慢,lint-staged 能够让 lint 只检测暂存区的文件,所以速度很快。

pnpm add husky lint-staged -D -w
npx lint-staged

配置 husky 和 lint-staged:在 package.json 文件中添加以下配置:

"husky": {
  "hooks": {
    "pre-commit": "lint-staged"
  }
},
"lint-staged": {
  "*.{js,ts,jsx,tsx}": [
    "eslint --fix",
    "prettier --write"
  ]
}

现在我们可以试着提交一下代码,如果不符合 eslint 校验规则的会自动修复,修复完成后需要再次提交

commitlint

commitlint 统一提交时的 message; 官方文档

  • 安装依赖
pnpm add @commitlint/config-conventional @commitlint/cli -D -w
  • 根目录新建 commitlint.config.js
module.exports = {
  extends: ['@commitlint/config-conventional']
}
  • 添加钩子 .husky/commit-msg
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx --no-install commitlint --edit $1
|-- Wannaer
    |-- .eslintrc.js
    |-- .prettierrc.js
    |-- commitlint.config.js
    |-- package.json
    |-- pnpm-lock.yaml
    |-- pnpm-workspace.yaml
    |-- README.md
    |-- tsconfig.json
    |-- packages
        |-- components
            |-- index.ts
  • 20
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值