在package.json脚本中调用特定的NodeJS函数

时间:2016-01-07 11:19:42

标签: javascript json node.js

我有一个带有导出功能的NodeJS文件,如下所示:

test.js

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

有没有办法在scripts的{​​{1}}对象中使用自定义命令从此文件中专门调用该函数?

例如,我想它看起来像这样:

package.json

显然,这是运行该函数的错误语法。

1 个答案:

答案 0 :(得分:3)

你可以使用一个好的'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调用。你也可以像往常一样要求它 这回答了你的问题,但你后来的评论使我不确定这是否是你所追求的。