javascript - 在像 electronjs 这样的自定义节点模块中添加命令行行为
问题描述
-g
我正在创建一个 JavaScript 库,我希望它在与标志一起安装时用作命令。问题是我如何实现这种行为。我应该能够将其用作命令。
由于电子以这样的方式运行,我认为我可以参考电子代码,但没有从它发生的地方得到。
我已经实现了以下行为
node_modules/nexam/index.js
module.exports = require("./lib/nexam");
node_modules/nexam/lib/nexam.js
'use strict'
exports = module.exports;
exports.sayHello = function(){
console.log("Hello World");
}
main.js
const nexam = require("nexam");
nexam.sayHello();
输出:
$ node main.js
Hello World
我想像这样使用它
$ npm install -g nexam
$ nexam --version
nexam v1.0.0
$ nexam --sayHello
Hello World
解决方案
这里有两件事需要处理。
- 添加
bin
到您的package.json
文件
"bin": { "nexam": "./index.js" }
- 使用command npm 包读取 cli 命令。它非常易于使用。这是他们文档页面的片段。
var program = require('commander'); program .version('0.1.0') .option('-p, --peppers', 'Add peppers') .option('-P, --pineapple', 'Add pineapple') .option('-b, --bbq-sauce', 'Add bbq sauce') .option('-c, --cheese [type]', 'Add the specified type of cheese [marble]', 'marble') .parse(process.argv); console.log('you ordered a pizza with:'); if (program.peppers) console.log(' - peppers'); if (program.pineapple) console.log(' - pineapple'); console.log(' - %s cheese', program.cheese);
一切顺利。
推荐阅读
- python - 定义函数时的元组和整数问题
- c++ - 将值均匀分布到数组中
- jquery - jQuery 函数在生产环境中无法正常工作(Heroku)
- c++ - 我的作业有问题:布尔表达式
- android - 带有额外字符串数据的 ADB 启动活动
- java - (LIBGDX) 如何清理我的应用程序使用的 RAM 内存?
- r - 将列中的值替换为基于另一列的上一年的值
- android - 使用MpAndroidChart-CombinedChart,如何将图表分成上下两部分?
- google-cloud-platform - 在 gcp 实例上设置 cassandra 集群时出错
- regex - 用于从字符串解析键/值对的 Boost 正则表达式