概述
我還記得之前調試官網的 ckeditor 編輯器,每次改完編輯器包,然后發布編輯器包,然后在官網里面引入這個包進行調試,如果有問題,重新改動、發布編輯器包,繼續引入,真的浪費了好多時間。其實類似這種場景都可以使用npm link,能夠極大地簡化操作。記錄下來,供以后開發時參考,相信對其他人也有用。
直接使用 npm link
比如說有包 package-A 和項目 project-B,項目 project-B 需要用到包 package-A。而他們都是在 projects 文件夾里面,那么我們可以直接在 project-B 里面 npm link,示例如下:
cd ~/projects/project-B # go into the dir of project B
npm link ../package-A # link the dir of your package
注意:link完之后,就相當於把這個包放到項目的 node_modules 里面去了,你可以直接在項目中引用這個包。
先把 package link 為全局,再在項目中引入
還是包 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 文件夾放到全局,所以也可以讓某些命令全局化。
2.npm link 的原理是建立 symlink(軟鏈接),但是並不是以文件夾名字的形式,而是以package.json
里面包的名字的形式。