描述

中英双语

这对于安装你自己的东西很方便,这样你就可以在它上面工作和迭代测试,而不必不断地重建。

包链接是一个两步过程。

首先,没有参数的包文件夹中的 npm link 将在全局文件夹 {prefix}/lib/node_modules/<package> 中创建一个符号链接,该符号链接链接到执行 npm link 命令的包。它还将包装中的任何垃圾箱链接到 {prefix}/bin/{name}。请注意,npm link 使用全局前缀(参见 npm prefix -g 的值)。

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

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

包名称可以选择以范围为前缀。见 scope。范围必须以@-符号开头,后跟斜杠。

在为 npm publish 创建 tarball 时,如果链接包包含在 bundleDependencies 中,则通过解析符号链接,链接的包将 "snapshotted" 恢复到其当前状态。

例如:

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

如果您的链接包有范围(参见 scope),您的链接命令必须包含该范围,例如

npm link @myorg/privatepackage