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作用域