如何优雅地在本地测试 npm 包
需要发布my-npm
,想在my-project
项目内测试my-npm
。
my-npm
是 npm 的名字,即package.json
中的 name,项目所在目录也是my-npm
。
两者不要求相同,但是为了方便描述,这里取一样的名字。
三种方法
- npm link
my-npm build 后,执行 npm link
,然后 my-project npm link my-npm
测试完毕,在 my-project npm unlink my-npm
释放软连接。
推荐这种方式,优点:my-npm 再次构建后,在 my-project 直接得到变更后的代码
- npm i . -g
my-npm build 后, 执行npm i . -g
,然后 my-project npm link my-npm
测试完毕,my-project npm unlink my-npm
释放软连接。
- yalc 模拟仓库
全局安装 npm i yalc -g
my-npm build 后, 执行 yalc public
, my-project yalc add my-npm
缺点:再次构建后,还需要在my-project
安装,有点繁琐。
这些命令做了啥
link
和i . -g
都在的全局 node_modules 内创建了链接到my-npm
的软连接。
yalc 则在项目模拟了一个仓库,在 yarn add 本地的 npm 包。
本质是简化了yarn add file:npm-path
。
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
package.json
的 files 字段,指定发布到 npm 的文件。