npm link 全方位解读

本文参考了NPM中文文档写做而成的html

npm link 功能

连接到包文件夹node

npm link 使用

npm link (in package dir)
npm link [<@scope>/]<pkg>[@<version>]

alias: npm ln

npm link 说明

程序包连接是一个两步过程。redis

首先,npm link 在包文件夹中,将在全局文件夹{prefix}/lib/node_modules/<package>中建立一个符号连接,该 连接连接到 npm link 执行命令的包。(请参阅 ` npm config
以获取的值 prefix)。它还会将包装中的全部垃圾箱连接到{prefix}/bin/{name}`。npm

接下来,在其余位置,npm link package-name 将建立一个从全局安装 package-name 到 node_modules/ 当前文件夹的符号连接。json

请注意,该 package-name 取自 package.json,而不是目录名称。api

包名称能够可选地以范围为前缀。请参阅 npm-scope。做用域以前必须加一个 @符号,再加上一个斜杠。测试

在为建立 tarball 时 npm publish,经过解析符号连接将连接的程序包“快照”到其当前状态。code

这对于安装您本身的东西很方便,所以您能够对其进行处理并对其进行迭代测试,而没必要不断进行重建。htm

例如:blog

cd ~/projects/node-redis # go into the package directory
npm link # creates global link
cd ~/projects/node-bloggy # go into some other package directory.
npm link redis # link-install the package

如今,对 ~/projects/node-redis 的任何更改都将反映在 ~/projects/node-bloggy/node_modules/node-redis/ 中。请注意,连接应指向软件包名称,而不是该软件包的目录名称。

您也能够将两个步骤合为一体。例如,以较短的方式完成上述用例:

cd ~/projects/node-bloggy # go into the dir of your main project
npm link ../node-redis # link the dir of your dependency

第二行等效于执行如下操做:

(cd ../node-redis; npm link)
npm link redis

也就是说,它首先建立一个全局连接,而后将全局安装目标连接到项目的 node_modules 文件夹中。

请注意,在这种状况下,您指的是目录名 node-redis,而不是包名 redis。

若是连接的程序包是做用域的(请参阅参考资料 npm-scope),则 link 命令必须包含该做用域,例如

npm link @myorg/privatepackage

本文参考NPM中文文档

相关文章
相关标签/搜索