前端vue组件库开发注意点

2023-11-29  本文已影响0人  Gary嘉骏

初始化

文件目录

- packages  #组件
- cli  # 脚手架,一件添加新组件的文件,包括文档里的文件
- docs  # 文档
- play  #  组件开发环境
  1. 使用pnpm 的workspace, 需要pnpm-workspace.yaml 和package.json里配置有哪些包。

pnpm-workspace.yaml

packages:
  - packages/*
  - cli
  - docs
  - play
  # exclude packages that are inside test directories
  - '!**/test/**'

package.json

"workspaces": [
    "packages/*",
    "cli",
    "docs",
    "play"
  ],
  1. package.json要设置type为module

  2. 不需要创建一个 .npmrc 文件,配置 shamefully-hoist 为 true(扁平结构), 因为使用pnpm就避免了这个问题。

  3. 使用 npx eslint --init 初始化 ESLint 配置, 后面的自动下载会失败,可以手动复制,加上 -D -w下载。后面的开发可以配合vite-plugin-eslint强制代码风格正确。

打包注意事项

  1. 尽量打包到dist里,不要改成其他如lib,可能外部项目导致无法导出子文件(我这里导不出style.css)

  2. package.json要正确加上配置

"type": "module",
  "main": "./dist/hj-ui-plus.umd.js",
  "module": "./dist/hj-ui-plus.es.js",
  "types": "./dist/hj-ui-plus/index.d.ts",
  "files": [
    "./dist",
    "package.json",
    "README.md"
  ],
  "exports": {
    ".": {
      "types": "./dist/hj-ui-plus/index.d.ts", // 虽然上面加了,但这里还要加,不然typescript会报错(虽然可以在tsconfig.json里的compilerOptions改"noImplicitAny": false,但这样及降低健壮性了)
      "require": "./dist/hj-ui-plus.umd.js",
      "import": "./dist/hj-ui-plus.es.js"
    },
    "./*": "./*"  // 这个也必须加,不然也导不出子项目
  },

发布gihub page

可以用包 gh-pages

不过要注意项目的.git - config 里的url要是ssh的地址,不然命令行运行时会报错443。

遇见一奇怪错误,features文案中有<script setup>的话编译生产后,主页会报读locales错误,还无法点击跳转。vitepress版本1.0.0-rc.30

基本框例子: https://github.com/Garyhjj/hj-ui-plus

上一篇下一篇

猜你喜欢

热点阅读