Symlink(符号链接)一个package文件夹。

概括

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

alias: npm ln

描述

package 链接过程分为两步
首先、npm link将会在全局包{prefix}/lib/node_modules/

包名称可以选择以任意作用域为前缀。 详情请查看npm-scope。 作用域必须以@-symbol开头,后跟斜杠。

在npm publish创建tarballs时,会通过解析符号链接将被链接的包“快照”到其当前状态。
安装自己的东西很方便,所以很方便基于其迭代开发测试,不需要重新build。
例如:

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/。需要注意的是,link的是包的名称而非文件夹名称。

当然你也可以简化以上两步,如下

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

上面做了如下事情:首先创建了一个全局链接,然后讲该全局安装的target链接到自己项目里的node_modules文件夹。
注意这种简化的操作,后面是文件路径node-redis而不是package的名称redis
如果链接的包是有作用域的,我们的命令就要包括作用域

npm link @myorg/privatepackage

总结

npm link的用途可以用于自己本地开发的模块调试过程
避免每次都publish npm包,然后安装调试。

这时候就可以先将该模块link到全局,然后在需要调试的项目里,将该命令链接到本地node_modules下面。
更多原文查看https://docs.npmjs.com/cli/link

版权声明:本文为pqjwyn原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/pqjwyn/p/9626335.html