nodejs寫的小工具,如何使用命令行直接執行?而不是先調用js文件,具體情況往下看
01-01
覺得實踐中學的更快吧,想做個前端的小工具自己用,nodejs寫,功能類如:自動創建一系列文件並且打開,就是html、css、img目錄等;添加時間戳,開啟強制緩存;圖片壓縮等等其他的一些加快速度的功能。
比如有main.js,在cmd中輸入 node main.js可以運行這個js文件
如果調用nodejs的commander模塊可以實現node main.js [function-name] [flag]這樣就可以實現在命令行中用參數運行指定的函數但是現在的想法是,使這個[funciton-name]函數可以直接在全局使用,而不是在前面加上node main.js
現在很多發布在npm上的前端工具都是這樣的模式,很有興趣是怎麼實現的,比如fis,可以直接用fis server open 打開開發目錄,這是怎麼實現的呢?
- 在 main.js 開頭加上
#!/usr/bin/env node
- 在 package.json 裡面添加
"bin": {
"mytool": "main.js"
}
- 如果你只是想本地使用,運行 npm link(相當於將一個本地包 install -g)
- mytool 可以直接作為命令使用了。
唉那個不是在 bin 目錄下放個沒後綴的文件然後第一行加 #!/usr/bin/env node 么……npm 會幫你把它打包成一個 bash/cmd 腳本。
這類東西node環境里比較適合用grunt來解決。當然grunt本身是cli,實現cli也很簡單,參見Writing Command Line Tools with Node,不過就你想做的這些東西,我覺得先看看grunt比較好。
在.bashrc裡面alias一下再source
推薦閱讀:
※js很奇怪的問題,關於加法運算的問題?
※如何評價前端應用框架 dva?
※如何在 JS 中嵌入 HTML 代碼?
※js浮點數精度問題的前世今生?
※為什麼JS中一個浮點數位或0會去掉小數部分?
TAG:前端開發 | JavaScript | Nodejs | 命令提示符cmd |