今天在一個npm項目中需要添加一個運行腳本至bin字段
添加后大概張這樣:
image.png
這樣稽犁,在命令行中直接輸入socketev
就會執(zhí)行后面的文件芒粹。
添加后執(zhí)行卻報錯:
zlxdeMacBook-Pro:socketProxy zlx$ socketDev
-bash: socketDev: command not found
應(yīng)該是環(huán)境沒有這個腳本,查一下百度:
image.png
難道要重新install一次辫封?
重新install一次之后
還是報上面的錯搬葬。
查看了很多搜索結(jié)果,都是這一句話:
bin項用來指定各個內(nèi)部命令對應(yīng)的可執(zhí)行文件的位置
"bin": {
"someTool": "./bin/someTools.js"
}
上面代碼指定素征,someTool命令對應(yīng)的可執(zhí)行文件為 bin 子目錄下的 someTools.js。Npm會尋找這個文件萝挤,在 node_modules/.bin/目錄下建立符號鏈接
都是csdn上面互相抄襲的東西御毅,一點用沒有。
果斷google:
第一頁就有結(jié)果:
image.png
好吧平斩,執(zhí)行一下npm link
zlxdeMacBook-Pro:socketProxy zlx$ socketDev
[2019-03-20 15:41:54.273] [INFO] app - ----
==> ?? SERVER is running on port 5000
執(zhí)行成功了亚享。
總結(jié):遠(yuǎn)離百度
最后看一下npm link
的作用
zlxdeMacBook-Pro:socketProxy zlx$ npm link
npm WARN socket-server@1.0.0 No description
npm WARN socket-server@1.0.0 No repository field.
up to date in 1.925s
/usr/local/bin/socketDev -> /usr/local/lib/node_modules/socket-server/bin/shell.js
/usr/local/lib/node_modules/socket-server -> /workspace/socketProxy
- 先在全局npm環(huán)境中創(chuàng)建了一個socketDev命令
- 再在全局環(huán)境創(chuàng)建一個socket-serve包,也就是當(dāng)前我們npm包的name字段命名的包绘面。
3.再將全局socket-server 包的命令執(zhí)行環(huán)境指向當(dāng)前目錄/workspace/socketProxy
這樣欺税,就在全局環(huán)境添加了一個可執(zhí)行命令。