Symlink(符号连接)一个package文件夹。node
npm link (in package dir) npm link [<@scope>/]<pkg>[@<version>] alias: npm ln
package 连接过程分为两步
首先、npm link将会在全局包{prefix}/lib/node_modules/
另外一种状况下,npm link package-name 将会建立一个从global包指向当前文件夹node_modules/下对应的连接。
注意:package-name是依据package.json的name而非文件名称。
包名称能够选择以任意做用域为前缀。 详情请查看npm-scope。 做用域必须以@-symbol开头,后跟斜杠。npm
在npm publish建立tarballs时,会经过解析符号连接将被连接的包“快照”到其当前状态。
安装本身的东西很方便,因此很方便基于其迭代开发测试,不须要从新build。
例如:json
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的是包的名称而非文件夹名称。测试
固然你也能够简化以上两步,以下ui
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
若是连接的包是有做用域的,咱们的命令就要包括做用域code
npm link @myorg/privatepackage
npm link的用途能够用于本身本地开发的模块调试过程
避免每次都publish npm包,而后安装调试。blog
这时候就能够先将该模块link到全局,而后在须要调试的项目里,将该命令连接到本地node_modules下面。
更多原文查看https://docs.npmjs.com/cli/link作用域