簡體   English   中英

在package.json腳本中調用特定的NodeJS函數

[英]Call specific NodeJS function in package.json scripts

我有一個帶有導出功能的NodeJS文件,如下所示:

test.js

exports.run = function(){
  console.log('You run this function!');
};

有沒有辦法在package.jsonscripts對象中使用自定義命令從此文件中專門調用該函數?

例如,我想它看起來像這樣:

{
  "author": "Joe Bloggs",
  "name": "test-app",
  "main": "server.js",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "test": "NODE_ENV=production node test.js run()",
  },
  "dependencies": {
    "express": "~4.10.6",
  }
}

顯然這是運行該函數的錯誤語法。

你可以使用一個好的'switch case並將參數傳遞給你的腳本。

test.js

function foo(){
  console.log('foo is called');
}

function bar(){
  console.log('bar is called');
}

for (var i=0; i<process.argv.length;i++) {
  switch (process.argv[i]) {
    case 'foo':
      foo();
      break;
    case 'bar':
      bar();
      break;
  }
}

module.exports.foo = foo;
module.exports.bar = bar;

的package.json

{
  "author": "A person",
  "name": "test-app",
  "main": "server.js",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "test": "NODE_ENV=production node test.js foo bar"
  },
  "dependencies": {
    "express": "~4.10.6"
  }
}

test.js:foo()和test.js:bar()現在將由npm test調用。 你也可以像往常一樣要求它。
這回答了你的問題,但是你后來的評論使我不確定這是否是你所追求的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM