我正在用Node写一个web应用程序。如果我有一些带有init函数的JS文件,我怎么从命令行调用这个函数呢?
当前回答
也许这个方法不是你想要的,但谁知道它会有帮助呢
index.js
const arg = process.argv.splice(2);
function printToCli(text){
console.log(text)
}
switch(arg[0]){
case "--run":
printToCli("how are you")
break;
default: console.log("use --run flag");
}
并运行命令node。——运行
命令行
probuss-MacBook-Air:fb_v8 probus$ node . --run
how are you
probuss-MacBook-Air:fb_v8 probus$
你可以添加更多的arg[0], arg[1], arg[2]…和更多的
对于节点。——运行-myarg1 -myarg2
其他回答
灵感来自https://github.com/DVLP/run-func/blob/master/index.js
我创建了https://github.com/JiangWeixian/esrua
如果文件index.ts
export const welcome = (msg: string) => {
console.log(`hello ${msg}`)
}
你就跑
esrua ./index.ts welcome -p world
将输出hello world
这个有点脏,但很好用:)
我将从脚本中调用main()函数。以前我只是在脚本的末尾调用main。然而,我确实添加了一些其他函数并将它们从脚本中导出(在代码的其他部分使用函数)-但我不想每次在其他脚本中导入其他函数时都执行main()函数。
所以我这样做了, 在我的脚本中,我删除了对main()的调用,而不是在脚本的末尾,我把这个检查:
if (process.argv.includes('main')) {
main();
}
所以当我想在CLI中调用这个函数时:node src/myScript.js main
根据其他答案,将以下内容添加到someFile.js
module.exports.someFunction = function () {
console.log('hi');
};
然后可以将以下内容添加到package.json
"scripts": {
"myScript": "node -e 'require(\"./someFile\").someFunction()'"
}
然后,您可以从终端进行呼叫
npm run myScript
我发现这是一种更容易记住和使用命令的方法
如果你的文件只包含你的函数,例如:
myFile.js:
function myMethod(someVariable) {
console.log(someVariable)
}
像这样从命令行调用它什么也不会发生:
node myFile.js
但是如果你改变你的文件:
myFile.js:
myMethod("Hello World");
function myMethod(someVariable) {
console.log(someVariable)
}
现在这将从命令行工作:
node myFile.js
简单的方法:
假设你在项目结构的helpers目录下有一个db.js文件。
现在进入助手目录,进入节点控制台
helpers $ node
2)需要db.js文件
> var db = require("./db")
3)调用你的函数(在你的情况下是init())
> db.init()
希望这能有所帮助
推荐文章
- 我如何使用Jest模拟JavaScript的“窗口”对象?
- 我如何等待一个承诺完成之前返回一个函数的变量?
- CALL_AND_RETRY_LAST分配失败-进程内存不足
- 在JavaScript中根据键值查找和删除数组中的对象
- 如何合并2 JSON对象从2个文件使用jq?
- 使嵌套JavaScript对象平放/不平放的最快方法
- 在Ubuntu上安装Node.js
- 如何以及为什么'a'['toUpperCase']()在JavaScript工作?
- 有Grunt生成index.html不同的设置
- 文档之间的区别。addEventListener和window。addEventListener?
- 如何检查动态附加的事件监听器是否存在?
- 使用express.js代理
- 如何写setTimeout与参数Coffeescript
- 将JavaScript字符串中的多个空格替换为单个空格
- JavaScript: override alert()