我還記得以前調試官網的 ckeditor 編輯器,每次改完編輯器包,而後發佈編輯器包,而後在官網裏面引入這個包進行調試,若是有問題,從新改動、發佈編輯器包,繼續引入,真的浪費了好多時間。其實相似這種場景均可以使用npm link,可以極大地簡化操做。記錄下來,供之後開發時參考,相信對其餘人也有用。node
好比說有包 package-A 和項目 project-B,項目 project-B 須要用到包 package-A。而他們都是在 projects 文件夾裏面,那麼咱們能夠直接在 project-B 裏面 npm link,示例以下:npm
cd ~/projects/project-B # go into the dir of project B npm link ../package-A # link the dir of your package
注意:link完以後,就至關於把這個包放到項目的 node_modules 裏面去了,你能夠直接在項目中引用這個包。json
仍是包 package-A 和項目 project-B,若是他們放在不一樣的文件夾裏面,而且相對路徑不太方便寫,或者他們的位置會變更,那麼可使用以下方式:編輯器
cd ~/packages/package-A npm link # creates global link cd ~/projects/project-B npm link package-A # link-install the package
注意:link完以後,就至關於把這個包放到項目的 node_modules 裏面去了,你能夠直接在項目中引用這個包。調試
1.若是是全局 link 的方式,也會把 bins 文件夾放到全局,因此也可讓某些命令全局化。code
2.npm link 的原理是創建 symlink(軟連接),可是並非以文件夾名字的形式,而是以package.json
裏面包的名字的形式。開發