发布包到npmjs上前的最后一步,要自己在本地中进行多环境测试。尽量确保不出现低级的bug。 常见的两种方法:
- npm link
- 使用 yalc 工具,更方便一些。本质原理还是npm link
nmp link使用
// 在当前创建库的目录下,执行以下命令,可以把当前的库的项目创建一个软连接,连接到本机的根node_modules下
npm link
// 到目录下,执行下面命令
npm link [包名]
这样就可以在本地目录下正常使用并测试自定义的库。 前端可以使用vite+vue3搭建一个项目,测试ESM的使用。 node的require语法,可以使用express框架创建一个项目。
Tips: 注意
rollup.config.base.js
中const pkgName = 'vivacedemo'
和package.json
中的name: "vivacedemo"
保持一致性,不然会找不到包
yalc工具
使用该工具,可以实时同步与编写的库进行调试。 yalc 可以在本地将npm包模拟发布,将发布后的资源存放在一个全局存储中。通过yalc将包添加进需要引用的项目中。 这时候package.json的依赖表中会多出一个file:.yalc/…的依赖包,这就是yalc创建的flie:软链接。同时也会在项目根目录创建一个yalc.lock确保引用资源的一致性。测试完项目还需要执行删除yalc包的操作,才能正常使用。
// NPM:
npm i yalc -g
// Yarn:
yarn global add yalc
// 在自己开发的库项目根目录下发布依赖
yalc publish
- yalc publish发布依赖到本地仓库,此命令只是发包并不会主动推送。
- 有新修改的包需要发布并且推送时,可以使用推送命令yalc push快速更新所有依赖。
- 即便是未执行push,在使用的项目中可以执行yalc update命令更新 推送命令
// 推送命令, yalc publish --push,简写如下
yalc push
在需要引入库的测试项目中
// 项目中添加了yalc.lock文件,package.json对应的包名会有个地址为file:.yalc/开头的项目
yalc add [name]
// 也可以使用XX@version锁定版本号
yalc add [name@version]
将版本锁定,避免因为本地新包推送产生影响
- —dev:将依赖添加进dependency中
- —pure:不会影响package.json文件
- —link:使用link方式引入依赖包,yalc add [name] —link
- —workspace (or -W):添加依赖到workspace:协议中, monorepo仓库 更新依赖
会根据yalc.lock查找更新所有依赖。
yalc update
// or
yalc update [name]
当执行publish后 并未主动执行push,用此命令在使用项目内单独更新依赖。 移除依赖
yalc remove [name]
// or
yalc remove --all