Node.js入门(附加篇) : Nodejs制作命令行工具

基于nodejs开发的命令行工具(nodejs提供了开发命令行工具的API): bower , gulp,grunt,fis,webpack,要先使用它们,前提就是安装nodejs环境

安装命令:

  • 本地安装:
npm install 工具(包)名称      
会在命令行,当前的目录下,生成一个node_modules文件夹,如果要使用该工具,必须要cd 到当前文件夹,才能执行该工具的指令
  • 全局安装:
npm install -g  工具(包)名称        
会安装在一个“特殊目录”中,打开命令行,不用cd,全局都可以直接调用该工具。

制作命令行工具

怎么将nodejs代码包, 开发成nodejs命令行工具的形式,输入一个命令,输出我们想要的东西?

每个代码包都可以有一个package.json(相当于iOS中的info.plist)配置文件,我们可以在这里进行操作:

nodejs代码包,转换成的命令行工具,有两种形式:

  • 通过npm + 自定义的指令,这个组合命令调用

    操作:package.json中,有一个“scripts”键,修改对应的值
    比如:“scripts”: {
                  “test”: “node 1.js”
                };
    调用: node test
    
    前提是: 必须切换到代码包目录下,有package文件 (我们制作的命令行工具,因为路径没有在全局环境变量中,添加过,所以是本地安装)
    执行过程: npm 去当前目录下的package.json中对应的scripts内容中,有没有我们输入的对应的指令,如果有,执行这个指令对应的内容(也是个命令行语句)
    
  • 仅仅通过自定义的指令,就能调用

    上面这种npm开头的指令,显然不是我们要的形式,npm的存在感太强了,一般,‘命令’都是我们制作的‘命令行工具名称’开头
    操作:package.json中,有一个“bin”键,修改对应的值
    比如:“bin”: {
                 “heheda”: “1.js” // 文件的路径
                };
    1.js中必须在第一行加个代码: #!/usr/bin/env node(/python)  // /usr/bin 意思就是将这个东西安装在,这个全局环境文件夹下
    
    然后npm link     
    // 注意: 1.js 的创建与使用,不能在不同的系统平台上进行,否则会出问题(在windows上创建,在Mac上就不能生成,全局命令)
    
    调用:heheda
    

命令行中直接npm回车,可以看到所有的内置指令

nodejs代码包 与 命令行工具,只是一些配置上的差别,本质都是nodejs代码
npm install -g 包名 只要全局安装的,都是命令行工具

你可能感兴趣的:(Node.js入门(附加篇) : Nodejs制作命令行工具)