初始化
文件目錄
- packages #組件
- cli # 腳手架,一件添加新組件的文件,包括文檔里的文件
- docs # 文檔
- play # 組件開發(fā)環(huán)境
- 使用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要設(shè)置type為module
不需要?jiǎng)?chuàng)建一個(gè) .npmrc 文件,配置 shamefully-hoist 為 true(扁平結(jié)構(gòu)), 因?yàn)槭褂胮npm就避免了這個(gè)問題。
使用
npx eslint --init初始化 ESLint 配置, 后面的自動(dòng)下載會(huì)失敗,可以手動(dòng)復(fù)制,加上 -D -w下載。后面的開發(fā)可以配合vite-plugin-eslint強(qiáng)制代碼風(fēng)格正確。
打包注意事項(xiàng)
盡量打包到dist里,不要改成其他如lib,可能外部項(xiàng)目導(dǎo)致無法導(dǎo)出子文件(我這里導(dǎo)不出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會(huì)報(bào)錯(cuò)(雖然可以在tsconfig.json里的compilerOptions改"noImplicitAny": false,但這樣及降低健壯性了)
"require": "./dist/hj-ui-plus.umd.js",
"import": "./dist/hj-ui-plus.es.js"
},
"./*": "./*" // 這個(gè)也必須加,不然也導(dǎo)不出子項(xiàng)目
},
發(fā)布gihub page
可以用包 gh-pages
不過要注意項(xiàng)目的.git - config 里的url要是ssh的地址,不然命令行運(yùn)行時(shí)會(huì)報(bào)錯(cuò)443。