有一个NodeJS CLI的启动脚本
Have a startup script to NodeJS CLI
如何将启动脚本添加到node.js
cli?例如,对于require
ing模块或设置一些选项?
编辑:我说的是服务器端,即我希望能够在系统的任何部分启动node
CLI,并让它在全局级别上预加载启动脚本(类似于bashrc
)。
当我读到你的帖子时,我意识到当前的Node.js REPL很糟糕!所以我做了一个关于你帖子功能的基本演示,我称之为拨浪鼓。
在这里,我将解释代码的每一行:
#!/usr/bin/env node
这是shebang,它确保它作为节点运行
const repl = require("repl"),
vm = require("vm"),
fs = require("fs"),
path = require("path"),
spawn = require("child_process").spawn,
package = require("./package");
导入所有包,你知道钻
function insertFile(file, context) {
fs.readFile(file, function(err, contents) {
if (err)
throw err;
vm.runInContext(contents, context);
});
}
我定义了将文件插入VM上下文(REPL就是)的函数
if (process.argv.includes("--global")) {
console.log(path.resolve(__dirname, ".noderc"));
显示全局.noderc 的位置
/** Hijack the REPL, if asked **/
} else if (process.argv.length < 3 || process.argv.includes("-i") || process.argv.includes("--interactive")) {
这开始成为代码的核心。这检测用户是否想要进入REPL模式
console.log(`rattle v${package.version}`);
var cmdline = repl.start("> "),
context = cmdline.context;
使用标准提示创建repl,并获取VM上下文
/** Insert config files **/
fs.access(localrc = path.resolve(process.cwd(), ".noderc"), function(noLocal) {
if (!noLocal) {
insertFile(localrc, context);
}
});
测试是否有local.noderc,如果有则将其插入上下文
fs.access(globalrc = path.resolve(__dirname, ".noderc"), function(noGlobal) {
if (!noGlobal && globalrc !== localrc) {
insertFile(globalrc, context);
}
});
测试global.noderc,并将其插入
} else {
/** Defer to node.js **/
var node = spawn("node", process.argv.slice(2));
node.stdout.pipe(process.stdout);
node.stderr.pipe(process.stderr);
}
剩下的部分只是将代码传递给节点,因为它不是REPL的东西
这写起来很有趣,希望对某些人有用。
祝你好运!
相关文章:
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 为什么我的控制器没有启动函数.js脚本
- 启动脚本中的 GATE -Dgate.plugins.home 选项
- 简单的按钮以快速启动脚本
- 在 MVC4 中注册启动脚本
- 如何在响应.redirect之前执行启动脚本
- 未生成电子邮件或未启动脚本
- 无法注册启动脚本
- 在启动脚本之前显示loading.gif
- 在滚动和最大宽度上启动脚本
- 节点在启动脚本上运行失败
- 如何在meteor mupx启动脚本中添加命令?
- 使用返回键启动脚本
- 瞄准类内部的类,启动脚本- Javascript/jQuery
- 是否有一种方法可以在ajax响应后启动脚本
- 我怎么能执行一些Javascript毕竟ASP.. NET启动脚本已执行
- 有一个NodeJS CLI的启动脚本
- InDesign启动脚本未从XML导入加载图像时出现问题
- Javascript 如何在确切的时间启动脚本
- 在控制器将数据发送到jsp之后,如何启动脚本