Skip to content
On this page

如何优雅地在本地测试 npm 包

需要发布my-npm,想在my-project项目内测试my-npm

my-npm 是 npm 的名字,即package.json中的 name,项目所在目录也是my-npm

两者不要求相同,但是为了方便描述,这里取一样的名字。

三种方法

  1. npm link

my-npm build 后,执行 npm link,然后 my-project npm link my-npm

测试完毕,在 my-project npm unlink my-npm 释放软连接。

推荐这种方式,优点:my-npm 再次构建后,在 my-project 直接得到变更后的代码

  1. npm i . -g

my-npm build 后, 执行npm i . -g,然后 my-project npm link my-npm

测试完毕,my-project npm unlink my-npm 释放软连接。

  1. yalc 模拟仓库

全局安装 npm i yalc -g

my-npm build 后, 执行 yalc public, my-project yalc add my-npm

缺点:再次构建后,还需要在my-project安装,有点繁琐。

这些命令做了啥

linki . -g 都在的全局 node_modules 内创建了链接到my-npm的软连接。

安装依赖

npm link

yalc 则在项目模拟了一个仓库,在 yarn add 本地的 npm 包。

本质是简化了yarn add file:npm-path

npm 被移入项目

bash
# yalc add 之后
"j-form-table": "file:.yalc/j-form-table",

常用的 yalc 命令

bash
yalc publish # 发布
yalc add npm-name # 安装进入项目
yalc update # 升级npm
yalc remove npm-name # 移除 npm
yalc dir npm-name # 查看 npm 的目录

关于 npmignore

npmignore 排除资源,使 npm 体积减少。

不配置 npmignore

不添加.npmignore

配置了 npmignore

添加.npmignore后

package.json的 files 字段,指定发布到 npm 的文件。

参考

如何在本地测试 npm 包

如何减少 npm 包的体积

Released under the MIT License.