发布包到npmjs上前的最后一步,要自己在本地中进行多环境测试。尽量确保不出现低级的bug。 常见的两种方法:

  • npm link
  • 使用 yalc 工具,更方便一些。本质原理还是npm link

nmp link使用

  1. // 在当前创建库的目录下,执行以下命令,可以把当前的库的项目创建一个软连接,连接到本机的根node_modules下
  2. npm link
  3. // 到目录下,执行下面命令
  4. npm link [包名]

这样就可以在本地目录下正常使用并测试自定义的库。 前端可以使用vite+vue3搭建一个项目,测试ESM的使用。 node的require语法,可以使用express框架创建一个项目。

Tips: 注意rollup.config.base.jsconst pkgName = 'vivacedemo'package.json中的name: "vivacedemo"保持一致性,不然会找不到包

yalc工具

使用该工具,可以实时同步与编写的库进行调试。 yalc 可以在本地将npm包模拟发布,将发布后的资源存放在一个全局存储中。通过yalc将包添加进需要引用的项目中。 这时候package.json的依赖表中会多出一个file:.yalc/…的依赖包,这就是yalc创建的flie:软链接。同时也会在项目根目录创建一个yalc.lock确保引用资源的一致性。测试完项目还需要执行删除yalc包的操作,才能正常使用。

  1. // NPM:
  2. npm i yalc -g
  3. // Yarn:
  4. yarn global add yalc
  5. // 在自己开发的库项目根目录下发布依赖
  6. yalc publish
  • yalc publish发布依赖到本地仓库,此命令只是发包并不会主动推送。
  • 有新修改的包需要发布并且推送时,可以使用推送命令yalc push快速更新所有依赖。
  • 即便是未执行push,在使用的项目中可以执行yalc update命令更新 推送命令
    1. // 推送命令, yalc publish --push,简写如下
    2. yalc push

在需要引入库的测试项目中

  1. // 项目中添加了yalc.lock文件,package.json对应的包名会有个地址为file:.yalc/开头的项目
  2. yalc add [name]
  3. // 也可以使用XX@version锁定版本号
  4. yalc add [name@version]

将版本锁定,避免因为本地新包推送产生影响

  • —dev:将依赖添加进dependency中
  • —pure:不会影响package.json文件
  • —link:使用link方式引入依赖包,yalc add [name] —link
  • —workspace (or -W):添加依赖到workspace:协议中, monorepo仓库 更新依赖

会根据yalc.lock查找更新所有依赖。

  1. yalc update
  2. // or
  3. yalc update [name]

当执行publish后 并未主动执行push,用此命令在使用项目内单独更新依赖。 移除依赖

  1. yalc remove [name]
  2. // or
  3. yalc remove --all