组件库基本制作完成了,现在让我们发布它吧
整理组件库
公用样式表
细心的朋友应该已经注意到了,前面我们在写组件的时候,css 类名都是 laby-xxx
这样的
所以我们可以用选择器来做到公用配置
在 src/lib
文件夹下,新建一个 scss 文件,或者 css 也行,2333
1 | [class^="laby-"],[class*=" laby-"]* { |
前缀改成你的项目标识就可以了
统一入口
我们还要告诉打包器,要暴露哪些内容
比如说创建一个 index.ts
,然后汇总一下
1 | import LabyButton from './Button.vue' |
注意,此处有一个 install
方法,因为用户有可能使用完整引入,此时必须提供一个 install
方法才可以完整引入
现在就可以使用下述方式完整引入
1 | // main.ts |
然后上面另一句 export
是用于部分引入组件的,要想部分引入组件,必须在每个子组件中都定义 install
方法。一个示例如下
1 | <template> |
现在就可以使用下述方式部分引入
1 | // main.ts |
注册 npm 账号
显然是要发布到 npm
打开 npm 官网 注册一个账号先
配置 rollup 打包
vite 本身不能提供打包功能,需要我们手动配置
此处选用 rollup 进行打包
首先在项目根目录下新建文件 rollup.config.js
各配置含义请参看注释
1 | // rollup.config.js |
可见,rollup 依赖至少 5 个包
- sass
- rollup-plugin-esbuild
- rollup-plugin-vue
- rollup-plugin-scss
- rollup-plugin-terser
我们需要先下载它们
1 | npm install sass -D |
下载完后,请注意检查一下 package.json
,看看上述依赖是不是都在 devDependencies
下,若不是,请移动到该字段下
进行打包
现在可以进行打包了
在项目根目录运行
1 | rollup -c |
运行完毕后,会在项目根目录下看到一个新文件夹 lib
里面应该有三个文件
- laby.css
- laby.js
- laby.umd.js
发布到 npm
先回到项目根目录,然后打开 package.json
向该文件中添加 files
和 main
字段,用于配置组件库的所在地和默认文件
1 | { |
发布到 npm 时,发布的项目名取决于该配置中的 name
字段,发布的版本号取决于该配置中的 version
字段
注意,每次发布时,发布的新版本号不得低于该项目以前发布过的任意版本号
然后在项目根目录下运行命令
1 | npm login |
登录上你刚才在 npm 注册的账号
注意,此处必须使用 npm 源,taobao 源是不能登上 npm 账号的
然后运行命令
1 | npm publish |
就可以发布包到 npm 了
如果你的包名已经被别人发布过,那么这一步会失败,回头修改你的包名吧
如果发布错了,可以删除这个包,但是要求是 72 小时内,这里不教了,反正是 unpublish
发布后可能会有延迟,等待 10 分钟左右应该就可以了
此时通过
1 | npm install laby-ui |
就可以下载到你新发布的包了
感谢阅读