我有一个带有导出功能的NodeJS文件,如下所示:
test.js
exports.run = function(){
console.log('You run this function!');
};
有没有办法在scripts
的{{1}}对象中使用自定义命令从此文件中专门调用该函数?
例如,我想它看起来像这样:
package.json
显然,这是运行该函数的错误语法。
答案 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调用。你也可以像往常一样要求它 这回答了你的问题,但你后来的评论使我不确定这是否是你所追求的。