npm link 全方位解讀

本文參考了NPM中文文檔寫做而成的html

npm link 功能

連接到包文件夾node

npm link 使用

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

alias: npm ln

npm link 說明

程序包連接是一個兩步過程。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中文文檔

相關文章
相關標籤/搜索