初始化
文件目录
- packages #组件
- cli # 脚手架,一件添加新组件的文件,包括文档里的文件
- docs # 文档
- play # 组件开发环境
- 使用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"
],
-
package.json要设置type为module
-
不需要创建一个 .npmrc 文件,配置 shamefully-hoist 为 true(扁平结构), 因为使用pnpm就避免了这个问题。
-
使用
npx eslint --init
初始化 ESLint 配置, 后面的自动下载会失败,可以手动复制,加上 -D -w下载。后面的开发可以配合vite-plugin-eslint
强制代码风格正确。
打包注意事项
-
尽量打包到dist里,不要改成其他如lib,可能外部项目导致无法导出子文件(我这里导不出style.css)
-
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。
网友评论