本文參考了NPM中文文檔寫做而成的html
連接到包文件夾node
npm link (in package dir) npm link [<@scope>/]<pkg>[@<version>] alias: npm ln
程序包連接是一個兩步過程。redis
首先,npm link
在包文件夾中,將在全局文件夾{prefix}/lib/node_modules/<package>
中建立一個符號連接,該 連接連接到 npm link
執行命令的包。(請參閱 ` npm config 以獲取的值 prefix)。它還會將包裝中的全部垃圾箱連接到
{prefix}/bin/{name}`。npm
接下來,在其餘位置,npm link package-name
將建立一個從全局安裝 package-name 到 node_modules/ 當前文件夾的符號連接。json
請注意,該 package-name 取自 package.json,而不是目錄名稱。api
包名稱能夠可選地以範圍爲前綴。請參閱 npm-scope。做用域以前必須加一個 @符號,再加上一個斜槓。測試
在爲建立 tarball 時 npm publish,經過解析符號連接將連接的程序包「快照」到其當前狀態。code
這對於安裝您本身的東西很方便,所以您能夠對其進行處理並對其進行迭代測試,而沒必要不斷進行重建。htm
例如:blog
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),則 link 命令必須包含該做用域,例如
npm link @myorg/privatepackage
本文參考NPM中文文檔