使用webpack+babel開發npm模組
開發npm包,推薦使用ES6書寫,再用babel進行轉碼,將ES6轉成ES5,開發體驗好,效率高。
一個典型的node工程目錄解構,bin目錄下存放程式入口,libs目錄下存放邏輯原始碼,使用webpack進行模組構建,使用babel進行ES6轉碼,使用npm script管理指令碼。
建立node指令碼入口
比如建立一個 cli.js
檔案:
#!/uisr/bin/env node console.log('your code goes here');
- 需要注意的是,第一行程式碼需要新增 片段識別符號 (也叫hashbang),使用Node直譯器執行該指令碼。如果遇到許可權問題,使用
sudo chmod +x file
新增可執行許可權 。 - 其次,在
package.json
中,必須提供bin
欄位:"bin": "bin/cli"
相當於指定npm的入口。
使用commander處理命令引數問題
gituhub的README上寫的很詳細, https://github.com/tj/commander.js/blob/master/Readme_zh-CN.md
除錯過程
-
推薦使用
VS Code
開發node應用,不僅僅程式碼提示、導航方面做的好,最好用的一點是可以直接F5啟動除錯模式,可以打斷點一行一行的除錯node程式,前提是設定好程式入口。對於更加複雜的應用, 可以通過配置.vscode/launch.json
進行高階配置。 -
在專案根目錄下通過
npm link
可以將專案link到全域性node_modules
目錄,這樣就可以在任意目錄下都可以使用自己的命令,英文名叫symbolic link
,每次儲存原檔案會link也會立即生效, 不用再次執行npm link
命令。
# 檢視連結的位置 $ which your_command