node简易命令行开发

发布时间 2023-04-06 15:24:52作者: Math点PI

一、在学习的过程中,好奇npm run build 到底做了什么?
打包 build对应的命令行为:
cross-env NODE_ENV=dev vue-cli-service build
1、修改环境变量NODE_ENV为dev
2、执行vue-cli-service build命令进行打包

二、这条命令在干什么?为什么会有这条命令?
1、在干什么?
这个不是我写这个的目的,主要是在干静态资源打包压缩,预处理一些less,scss等,js,css压缩,AST分析依赖关系,兼容不同的规范(AMD CMD ESM CommonJS),babel转es5等

2、为什么会有这个命令?
注册并安装到全局,就能有自己的命令了;那么怎么开发自己的命令?

三、怎么开发命令?
这部分也是现学现卖
1、先新建个文件夹 mycli; 是的,就叫mycli

2、进入mycli文件夹,并建立命令行执行的文件和bin文件夹
新建bin/mycli.js文件夹

3、你这条命令到底想干嘛?
打开mycli.js;输入你想做的事,测试可以直接打印log

问:第一句是什么?
答:#!/usr/bin/env node
带有#!就是代表此文件可以当做脚本运行,那么怎么运行呢,运行什么呢?
/usr/bin/env node这行的意思就是用node来执行此文件,node怎么来呢,就去用户(usr)的安装根目录(bin)下的env环境变量中去找,简单的说就是如果在windows上面,就去安装node的bin目录去找node执行器,一般我们都放在环境变量中,所以就能正确找到node来执行

4、执行cmd: npm init --yes ; 生成package.json文件
--yes 表示全部默认

5、确认package.json内部是否存在bin? 不存在的话则在文件中手动写入:

6、安装到全局
在package.json所在文件夹下执行: npm install . -g

7、此时命令行已经安装完毕,可以通过package.json下的bin,找到其命令;并直接输入到cmd窗口即可;

至此:一条命令就被注册使用了;基于node可以拓展很多功能;比如文件批处理、分类,移动、删除;获取电脑ip dns(在vue-cli的service中看到的);等等等
好玩,自己再写个bash就想做啥做啥了;

四、使用插件,开发命令行
commander : 让开发 Nodejs 命令行更加简单(node.js command-line interfaces made easy)
inquirer : 常见的交互式命令行用户接口的集合。