SeekerTime 2019-06-20
近期公司前端一直在做效率提升,流程优化,很荣幸这个担子落在了我身上,除了一些培训,分享之外,自己弄了个基于yeoman的前端构建环境生成器,在此分享给大家,觉得有用的请试用。
好了,言归正传,这个生成器的名字如标题所示,叫做generator-pg-cloud,后面的代表我在公司所属的部门,大家就不要care了。最新版本的应该是1.4.3版本了,之间经历过很多次各种大改小改,现在还算基本满意吧。
准备工作:请准备好nodejs环境,安装yeoman,这是最基本的,如果想使用单元测试,请安装mocha,不知道如何安装的自行百度,不再赘述。
YES!,现在该本文的正角儿出场了,$npm install -g generator-pg-cloud
,如果没有报错,相信生成器已经安装在你电脑上的nodejs根目录了。
现在让我们新建一个工程目录,$mkdir demo && cd demo
,进入demo文件夹之后,运行$yo
,如果在选项中没有出现PG CLOUD,那么运行$npm link generator-pg-cloud
将生成器链接进工程环境。也可以直接运行$yo pg-cloud
直接安装,安装过程中会出现在一些选项提示,按照自己的需求来就好了。
OK,不出意料的话,构建环境已经生成完毕了。现在让我们看看目录里面有些啥东西:
gulpfile.js 提供如下功能:
$gulp serve
启动一个localhost,默认端口9090,会自动调用浏览器并打开,结果browser-async插件,当文件改变时,自动刷新浏览器,如果你使用了一些需要编译的写法,例如基于commmonjs规范的require,ECMAScript6语法,React的JSX语法,browserify会自动帮你编译文件到.tmp文件,你只需要在html文件夹里面指定需要编译的script标签,给这个标签加一个属性browserify='入口文件路径',详见demo $gulp jshint
利用jshint插件对语法进行检查$gulp wiredep
自动依赖注入,当你使用bower安装了一个插件,例如jquery,这个命令可以让所有html页面都导入这个插件,免去痛苦的手动修改,如果此时gulp serve正在运行,则更会自动帮你注入,$gulp wiredep
都免去了。 $gulp images
压缩app/resource文件夹下的资源文件图片,免去手动压缩 $gulp default
构建整个项目,生成一个新的项目文件夹dist,压缩各种html,css,js文件,压缩资源等等。 $gulp parsePath
将html文件中的绝对引用路径都替换成相对路径,主要是为了解决我们公司线上服务器和构建环境差了一级目录的问题. $gulp dist
启动构建目录的环境,这时主要是为了看看构建生成的目录有没有问题,报错之类的。 $gulp debug
创建一个debug服务,这个功能主要是针对手机端调试打印log的,你需要编写一个AJAX请求,把你想打印的LOG以get方式发送到localhost:3000端口,就能在命令行打印出你需要的LOG,同时打开debug.html,在这个页面的控制台你也能看到log信息。OK, 现在工程文件夹下的dist目录,就是你的部署目录了。
另外讲一讲如何html文件中的一些规范:
大概就是这样了,最后附上DEMO地址,下载之后可进入文件夹运行$npm install
(因为gitignore的原因,会把工程依赖的插件都屏蔽掉,不会上传,但是有package.json就不怕),之后运行$gulp serve
就可以随便玩了。