2021年5月17日 星期一

各種執行方式下傳遞參數給nodejs的執行

在使用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,'..')

沒有留言: