npm8中文文档
这对于安装你自己的东西很方便,这样你就可以在它上面工作和迭代测试,而不必不断地重建。
包链接是一个两步过程。
首先,没有参数的包文件夹中的 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