本文主要介绍使用
npm link
的风险以及我们为什么使用npx link
来替代它
先抛结论
使用npm install
或者npx link
去软连接一个本地包作为依赖而不是使用npm link
$ npx link <package-path>
npm link是hiroki osame开发的一个更安全、更可预测的npm link
的替代品
因为如下原因我们应该避免使用npm link
-
多个Node.js版本同时使用容易出错
-
link失败不会报错并且会回退到直接从npm仓库进行安装
-
会有预期之外的二进制可执行文件安装
-
不符合预期的软链接删除
npm link
是什么
npm link
是一个用于开发时直接将本地包链接为依赖项的一个命令行工具。通常用于发布npm包之前本地测试使用
更多信息可查看官方文档
使用
假设存在以下模块包
my-library
: npm包,需要在其它项目中作为依赖进行测试
需要注意的是这里my-library/package.json
中的name
属性也是应该my-library
my-application
:package/my-application
需要进行测试的项目
下面演示如何将my-application
中的my-library
链接到本地
- 全局安装
在my-application
中执行npm link
将my-library
安装到全局。这样才能让其它本地项目有办法链接到这个包。npm link
的行为其实等同于npm install --global
$ cd ./my-library
$ npm link
- 安装
在my-application
中执行npm link my-library
去链接这个包
$ cd ./my-application
$ npm link my-library
npm link <package-path>
也可以直接执行npm link <package-path></