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

Call specific NodeJS function in package.json scripts

本文关键字:NodeJS 函数 调用 package json 脚本      更新时间:2023-09-26

我有一个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",
  }
}

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

您可以使用一个好的ol’switch用例并将参数传递给脚本。

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测试调用。你也可以像平时一样需要它
这回答了你的问题,但你后来的评论让我不确定这是否是你想要的。