我有一个带有导出功能的 NodeJS 文件,有点像这样:
test.js
exports.run = function(){
console.log('You run this function!');
};
有没有一种方法可以使用 package.json
的 scripts
对象中的自定义命令从该文件中专门调用该函数?
例如,我想象它看起来像这样:
{
"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/