我之前用webpack的时候,都是直接用各大框架的cli脚手架生成的。然而最近一些原因,导致我经常要脱离框架写代码,但是我又非常希望使用es6和sass,所以思来想去还是要用到webpack。前两天趁着比较空的时间,再度学习了一下webpack的配置,写了一个内置模板的webpack脚手架cli: @crazymad/crazymad-cli。
代码挂在了我的github上: crazymad-tools/crazymad-cli,感兴趣的同学可以自行fork更改,代码我写得很简单,没什么高深的地方。
安装:
npm install -g @crazymad/crazymad-cli
使用
命令行下执行crazymad-cli --help
,输出:
D:\> crazymad-cli --help
Usage: crazymad-cli [options]
Options:
-V, --version output the version number
init init a project
-T, --template [String] create from template
-N, --name [String] input project name
-h, --help output usage information
init参数是初始化开关,只有输入这个命令行参数,脚本才会执行后续命令。–name参数可选,不填入该参数的话,脚本认定当前工作目录即为项目的根目录,填入该参数,脚本会在当前目录下再创建一个项目文件夹作为项目的根目录(基本逻辑其实和vue-cli类似);–template参数可选,不填入该参数的话,template默认为base,当然后面还需要确认一次。
和vue-cli一样,键入命令并执行后,程序会让用户再输入一些信息,比如项目名称、作者名字、开源协议之类的,具体如下所示:
所有信息确认完毕后,程序开始执行npm install命令,我现在只测试了windows下的安装过程,基本没有问题。
拓展
我不知道像vue-cli里面的具体是怎么实现的,我个人为了方便template的拓展,给template添加了plugin接口,可以让每个template做一些个性化的操作。
缺陷
等我差不多写完了的时候,我去瞄了一眼vue-cli的实现,发现它的template和本体是分离的话,是在构架项目工程文件的时候,template才会被download下来。讲道理,vue-cli的做法更加合理,不过想想我这个小工具反正也只有我自己用用,没必要整这么麻烦。
此外就是template我才写了一个,未来有待增添更多的template