共计 1185 个字符,预计需要花费 3 分钟才能阅读完成。
本文参考了 NPM 中文文档写作而成的
npm link 功能
链接到包文件夹
npm link 使用
npm link (in package dir)
npm link [<@scope>/]<pkg>[@<version>]
alias: npm ln
npm link 说明
程序包链接是一个两步过程。
首先,npm link
在包文件夹中,将在全局文件夹 {prefix}/lib/node_modules/<package>
中创建一个符号链接,该 链接链接到 npm link
执行命令的包。(请参阅 ` npm config 以获取的值 prefix)。它还会将包装中的所有垃圾箱链接到
{prefix}/bin/{name}`。
接下来,在其他位置,npm link package-name
将创建一个从全局安装 package-name 到 node_modules/ 当前文件夹的符号链接。
请注意,该 package-name 取自 package.json,而不是目录名称。
包名称可以可选地以范围为前缀。请参阅 npm-scope。作用域之前必须加一个 @符号,再加上一个斜杠。
在为创建 tarball 时 npm publish,通过解析符号链接将链接的程序包“快照”到其当前状态。
这对于安装您自己的东西很方便,因此您可以对其进行处理并对其进行迭代测试,而不必不断进行重建。
例如:
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 中文文档