You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Options:
-v, --version get current version
-h, --help display help for command
Commands:
start start a program
build build program
publish publish program
help [command] display help for command
背景
脚手架在前端工程化领域的重要性不言而喻,每个公司(或团队)都会根据自己的业务特性维护适合自己的脚手架。具体来说其重要性体现在以下几个方面:
既然如此,那作为一个前端人员,得理解脚手架的工作原理以及其基本实现吧。接下来我们一步一步从零开始完成一个简单的脚手架。
项目搭建
初始化项目
mkdir simple-cli cd simple-cli mkdir cli // 存放cli源码的目录 mkdir demo // 存放demo的目录
进入到
cli
目录(后续操作默认都在cli目录下)平平无奇,直接执行
npm init
。一顿回车就能得到一个项目。但是只有一个package.json
文件。同一层级新建
index.js
全局链接配置
package.json
文件增加配置:bin
的配置很重要,用来指明对应可执行文件的位置。 未来用户通过npm
全局安装我们的脚手架之后,就可以执行simple-cli
指令了。更多关于package.json配置的解读在这里。
但是这个包还在开发阶段,当然不可能安装了。此时可以借助另一个指令
npm link
。控制台进入当前目录下执行:此时
npm
会将bin
下的指令链接到全局(未来可以通过npm unlink
断开)。此时在控制台执行:
babel配置
脚手架的执行环境是
node
。而node
是遵循CommonJs
的。 为了能执行ES6
代码,则需要对我们的代码进行转义。继续在package.json
中增加如下配置:这个配置的含义是:
babel
转义src
目录下的文件,并输出到lib
目录下,--watch
的含义是监听src
目录,当该目录下有代码改动时,就会重新编译一次。配置 .babelrc, 新建文件
cli/.babelrc
:控制台执行:
新建文件
src/index.js
,写入代码:此时会自动新建一个文件
lib/index.js
,其内容就是src/index.js
转义后的代码。修改
cli/index.js
文件代码为:此时控制台输入
到这里得到如下目录:
我们的项目基础配置已经完成了。后续在src目录下开发具体功能。
定义基础指令
对于一个脚手架工具,应该具有以下基础指令:
这里借助
commander
来实现其定义。 首先npm install commander --save-dev
。修改src/index.js
文件:此时控制台执行
simple-cli help
将得到如下输出:这里只做了其定义,每个指令的具体实现将在后面陆续实现。
未完待续
源码地址
参考文章
The text was updated successfully, but these errors were encountered: