npm命令行工具开发

最近琢磨开发geojson-help命令行工具,把开发工具的过程整理了下

  • 初始化

    mkdir project
    npm init
  • 新建bin/run命令文件,内容如下,代表在node环境执行

    #!/usr/bin/env node
  • 修改下可执行权限

    $ sudo chmod u+x run
  • 修改package.json文件,注册npm命令

    "bin": {
    "run": "./bin/run"
    }
  • 软链接命令到全局环境,方便调试

    npm link
  • 然后在run文件中写命令行代码,可以用commander来执行git风格的命令

    var run = require('../package.json');
    var commander = require('commander');

    commander
    .version(run.version)
    .usage('<command> [options]')
    .command('init', 'initialize')
    .parse(process.argv)
  • 同样新建bin/run-init, 执行run init 时即可将命令分发到run-init文件内

  • run-init中写一些要在node环境中执行的代码,可以通过commander来抓取参数

    var commander = require('commander');

    commander
    .option('-p, --params <params>', 'some params')
    .parse(process.argv);

    console.log(params.params);
  • 执行run init -p test, 控制台应该会输出test

  • 将npm包发布后, npm i your-package -g安装到全局,即可直接调用命令