在使用command line執行node程式
透過參數傳遞到程式內的幾個執行方式
參數的傳遞
1.node
js程式內(buildTest.js)
const host = process.argv[2]
const type = process.argv[3]
執行
node buildTest myhost mytype
2.透過npm執行
將node執行放到package.json的script上透過
npm run執行
1.package.json內設定
{
...
"build-test": "node ./xxx/buildTest",
}
2.npm 執行
npn run build-test myhost
3.包裝成bat檔案執行
bat檔案內容(build-test.bat)
@echo off
node buildTest.js %1
執行
build-test.bat myhost
4.保證正確的執行路徑設定
透過各種方式執行
需要注意到路徑問題
要執行的js檔案在 /ozzy/test/build-test.js
執行方式
1.在根目錄下執行
使用node /ozzy/test/build-test.js執行
2.進入到js檔案所在目錄執行
cd /test/
node build-test.js
若執行的js內有用到相對路徑
相對的對象會是node執行的位置
可能會造成問題
要保證在任何地方都可執行
最好取得完整路徑
作法是以__dirname 搭配path.join取得絕對路徑
__dirname會拿到js檔案所在目錄的位置
ex:
在build-tes.js內要取到/ozzy目錄
原本相對路徑是用
const ozzyPath = '../'
改用
const ozzyPath = path.join(__dirname,'..')
沒有留言:
張貼留言