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

标签 javascript json node.js

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

关于javascript - 在 package.json 脚本中调用特定的 NodeJS 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34653829/

相关文章:

javascript - 如何将 AIML 与 Node.js 结合使用?

javascript - app.set ('port',端口) 'TypeError: undefined is not a function'。初学者,需要思路

javascript - 如何制作具有许多层次结构/子子的水平下拉菜单?

json - 在配置单元脚本中使用 json_tuple 语法时发生错误

c# - 在 C# 中从 JSON 对象转换为 expando 对象

javascript - 重构/重建json数据树

javascript - Node.js中如何在不同文件之间共享一个数据库连接?

javascript - 在 Ruby on Rails 中实现作业完成时的通知/警报弹出窗口

javascript - 在 react-native-maps 中渲染多个标记

javascript - 如何从TextArea中获取数据并将其保存在Winword和记事本中?