npm-link Symlink a package folder

SYNOPSIS

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

alias: npm ln

DESCRIPTION

程序包链接是一个两步过程.

首先,package文件夹中的npm link将在全局文件夹{prefix}/lib/node_modules/<package>中创建一个符号链接,该符号链接链接到执行npm link命令的软件包. (有关prefix的值,请参见npm-config ). 它还会将软件包中的所有垃圾箱链接到{prefix}/bin/{name} .

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

请注意, package-name是从package.json ,而不是目录名.

包名称可以可选地以范围为前缀. 参见npm-scope . 范围必须以@符号开头,并以斜杠开头.

在为npm publish创建tarball时,通过解析符号链接将链接的软件包"快照"到其当前状态.

这对于安装您自己的东西很方便,因此您可以对其进行处理并对其进行迭代测试,而不必不断进行重建.

例如:

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 ),则链接命令必须包含该作用域,例如

npm link @myorg/privatepackage

SEE ALSO


by  ICOPY.SITE