Open muwoo opened 6 years ago
作为Vue的用户,离不开Vue-cli,当我们构建项目的时候,项目大部分都会运行以下命令:vue init webpack myProject 根据交互式问答,我们一步步构建出了自己的项目基本结构,如果你已经知道如何搭建这样一个交互式脚手架,下面的内容就可以不用看了...
vue init webpack myProject
通过我们会通过npm install -g xxx来进行全局包的安装。-g 是将一个包安装为全局可用的可执行命令,他根据包描述文件package.json中的bin字段进行配置。
npm install -g xxx
package.json
// package.json { "name": "demo", "version": "0.0.1", "bin": { "demo": "./bin/test" } }
./bin/test
#!/usr/bin/env node console.log('hello world')
下面运行npm i ./ -g 来全局安装当前目录到全局环境,运行demo, 看到了熟悉的hello world。
npm i ./ -g
demo
注意脚本中需要指定#!/usr/bin/env node来声明脚本的执行环境为nodejs。
#!/usr/bin/env node
当一个Nodejs程序运行时,会有许多存在内存中的全局变量,其中有一个叫做process,意为进程对象。process对象中有一个叫做argv的属性。命令行程序的第一个重头戏就是解析这个process.argv属性。 我们把上面的例子改造一下,把process.argv打印出来看看: 当我们需要根据参数,执行不同任务的时候,我们就需要去解析这样的参数,如果不嫌麻烦,我们也可以自己写一个简陋的函数去处理这样的事情。 commander.js是TJ所写的一个工具包,其作用是让node命令行程序的制作更加简单。下面我们来一个简单的🌰
#!/usr/bin/env node require('commander') .version('0.0.1') .description('a test cli program') .option('-n, --name <name>', 'your name', 'monkeyWang') .option('-a, --age <age>', 'your age', '22') .parse(process.argv)
运行demo -h 此时,会列举出cli脚手架的一些提示信息,提示信息通过option选项进行定义,描述信息通过description选项进行定义。最后可以通过parse来解析命令行参数
demo -h
option
description
parse
前言
作为Vue的用户,离不开Vue-cli,当我们构建项目的时候,项目大部分都会运行以下命令:
vue init webpack myProject
根据交互式问答,我们一步步构建出了自己的项目基本结构,如果你已经知道如何搭建这样一个交互式脚手架,下面的内容就可以不用看了...npm 全局模板
1. hello world
通过我们会通过
npm install -g xxx
来进行全局包的安装。-g 是将一个包安装为全局可用的可执行命令,他根据包描述文件package.json
中的bin字段进行配置。./bin/test
下面运行
npm i ./ -g
来全局安装当前目录到全局环境,运行demo
, 看到了熟悉的hello world。2. commder
当一个Nodejs程序运行时,会有许多存在内存中的全局变量,其中有一个叫做process,意为进程对象。process对象中有一个叫做argv的属性。命令行程序的第一个重头戏就是解析这个process.argv属性。 我们把上面的例子改造一下,把process.argv打印出来看看: 当我们需要根据参数,执行不同任务的时候,我们就需要去解析这样的参数,如果不嫌麻烦,我们也可以自己写一个简陋的函数去处理这样的事情。 commander.js是TJ所写的一个工具包,其作用是让node命令行程序的制作更加简单。下面我们来一个简单的🌰
运行
demo -h
此时,会列举出cli脚手架的一些提示信息,提示信息通过option
选项进行定义,描述信息通过description
选项进行定义。最后可以通过parse
来解析命令行参数