nodejs 命令行、自定义

一、必备插件

1. babel:es6语法支持,需要babel-perset-es2015(转换成es5执行)、babel、babel-core(程序执行)

2. commander:自定义命令插件,提供参数的传递等

3. liftoff:实现对命令窗口的输入监听,以及命令格式化规格。

4. minimist:读取命令行参数插件

以上插件都可以通过npm直接安装。

二、示例代码分析:

2.1. cli.js

var liftOff = require("liftoff");import app from "./app";var argv = require("minimist")(process.argv.slice(2));var cli =new liftOff({    name: "sam",    processTitle: 'samLong',    moduleName: "sam",    extensions:{        '.js':null    }});cli.launch({    cwd: argv.r || argv.root,    configPath: argv.f || argv.file},function(env){    console.log("命令名称:" + argv["_"]);    console.log( "执行路径:" + env.cwd);    var commander = require('commander');    var _app = new app();    _app.register(commander);});

1. liftOff类:通过导入liftOff第三方插件实现对命令行参数进行解析,且通过liftOff的实例方法launch进行捕获

2. require(“minimist”)(process.argv.slice(2)):将命令行参数转换为对象

3. ./app:导入命令执行类

2.2. app.js

class App{    register(commander)    {        commander            .option('-d --date', "显示时间")            .parse(process.argv);        if (commander.date) {            console.log('date命令被执行');        }    }};export default App;

通过commander实现的一个简单的命令执行类。

2.3. index.js

require("babel-core/register"); //导入babel-core,用于在代码中转换我es6require("./src/app");require('./src/cli');

2.4. 执行效果:

三、GIt地址

git@code.csdn.net:cqhaibin/commandertest.git

期待遇上一位撑着油纸伞,结着忧愁丁香一样的姑娘;或者在春暖花开时,

nodejs 命令行、自定义

相关文章:

你感兴趣的文章:

标签云: