nodejs写的小工具,如何使用命令行直接执行,而不是先调用main.js,具体情况往下看

比如现在有这样的main.js
functionexec(flag){
console.log(flag);
};
exec("HelloWorld!");
然后在cmd中执行
cdC:\Users\Administrator\Desktop\main//文件地址
nodemain.js
得到
HelloWorld!
如果调用nodejs的commander模块(需下载,不是nodejs核心模块)[npminstallcommander],可以实现在命令行根据参数执行js中定义的函数,如修改main.js为
varprogram=require('commander');
functionexec(flag){
console.log(flag);
};
program
.command('exec')
.action(function(flag){
exec(flag);
});
program.parse(process.argv);
然后在cmd中输入
nodemain.jsexecHello!
可以直接打印出Hello!
同理,如果定义了其他函数都可以用这种方式运行,很方便现在问题是,希望exec这个函数可以在全局使用
比如在cmd中直接运行
execHello!
就可以直接打印出Hello!
PS:在npm中很多模块都是这样直接可以在全局调用,直接在命令行输入对应命令就可以执行动作,而不是用
node**.js
这种方式执行,比如百度前端工具fis,可以直接用
fis+参数
执行相对应的动作
真心求教这是如何实现的
开满天机
浏览 353回答 2
2回答

慕标5832272

能这样子执行的都是二进制模块吧还有另一种方法在文件第一行加上#!/usr/bin/envnode,然后sudochmodu+xapp.js,再通过./app.js来执行
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript