最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    正文概述 掘金(JinYoMo)   2021-02-02   632

    一切重复工作本应自动化

    自动化简介

    源代码自动化构建为生产代码,该过程称为自动化构建工作流

    作用:尽可能脱离运行环境兼容带来的问题,使用提高效率的语法、规范和标准

    应用场景:例如在开发网页应用时,可以使用ECMAScript Next 的最新标准去提高编码效率和质量;

    利用Sass去增强CSS的可编程性;借助模板引擎去抽象页面当中重复的HTML。这些用法大都不被浏览器直接支持。这种情况下,自动化构建工具就可以派上用场了——构建转化那些不被支持的特性,转换成能够直接运行的代码,提高编码效率。

    Gulp构建过程核心工作原理

    构建过程大多数情况下就是把文件读出来然后进行一些转换,最后写入到另外一个位置

    gulp为基于流的构建系统,构建过程使用文件流的方式,原因是gulp希望实现一个构建管道的概念,后续做扩展插件时有比较统一的方式

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    gulp中常规构建任务的核心构建过程

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    采用底层node API实现一下这个过程,实现过程如下

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    代码地址为

    Gulp文件操作API+插件的使用

    通过Gulp创建构建任务时的流程如下:

    1.通过gulp中src方法创建读取流

    2.借助插件提供的转换流来实现文件加工

    3.通过gulp中dest方法创建写入流,从而写入到目标文件

    //gulp转换流插件的使用
    yarn add gulp-clean-css --dev  //该插件提供压缩css代码的转换流
    yarn add gulp-rename --dev  //重命名插件
    

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    Gulp自动化构建案例——样式编译

    案例——采用gulp完成自动化构建工作流

    第一步:

    yarn add gulp --dev  //安装gulp依赖
    yarn add gulp-sass --dev //安装gulp-sass插件用于css转换 每个插件提供的基本上为函数 该函数返回文件的转换流
    

    第二步:根目录新建gulpfile.js文件

    第三步:

    yarn gulp style  //style为任务名称
    

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    Gulp自动化构建案例——脚本文件编译任务

    yarn add gulp-babel --dev  //安装gulp-babel插件
    yarn add @babel/core @babel/preset-env --dev  //转换ES新特性 babel只是提供一个转换平台,需要babel提供的插件来完成转换 可在.babelrc里面配置
    

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    Gulp自动化构建案例——页面文件编译任务

    yarn add gulp-swig --dev  //gulp-swig插件用来转换模板引擎
    

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    Gulp自动化构建案例——图片和字体文件转换

    yarn add gulp-imagemin --dev  //gulp-imagemin为图片压缩插件
    

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    Gulp自动化构建案例——其他文件及文件清除

    yarn add del --dev  //不属于gulp插件 del(['dist'])可删除任意文件目录
    yarn gulp build  //执行方式
    

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    Gulp自动化构建案例——自动加载插件

    yarn add gulp-load-plugins --dev  //该插件避免require方式加载插件 自动化加载
    

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    Gulp自动化构建案例——热更新开发服务器

    yarn add browser-sync --dev  //提供一个开发服务器 代码修改后自动热更新到浏览器及时看到最新页面效果
    yarn gulp serve   //执行serve任务
    

    实现修改dist下所有任意文件浏览器自动更新

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    Gulp自动化构建案例——监听变化以及构建过程优化

    yarn gulp serve   //执行serve任务
    

    实现修改src下所有任意文件浏览器自动更新

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    构建过程优化——开发阶段以最小代价呈现

    yarn gulp develop //开发阶段 不执行图片 文字样式 公共部分的压缩
    yarn gulp build   //上线阶段 全部执行编译  bs.init() 针对开发阶段
    

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    Gulp自动化构建案例——useref文件引用处理

    yarn add gulp-useref --dev  //将打包文件的其他文件依赖处理压缩 将构建注释进行转换生成新的路径文件 针对上线环境
    yarn gulp useref
    

    执行前

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    执行后

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    代码如下

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    Gulp自动化构建案例——分别压缩HTML CSS JavaScript

    yarn add gulp-htmlmin gulp-uglify gulp-clean-css --dev  //分别压缩html css javascript插件
    yarn add gulp-if --dev  //判断条件插件
    yarn gulp useref  //执行命令
    

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    Gulp自动化构建案例——重新规划构建过程

    采用temp作为中间目录

    yarn gulp build  //运行线上
    yarn gulp develop //开发环境
    

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    Gulp自动化构建案例——补充

    第一个:

    1.将任务在gulpfile.js中导出

    2.在package.json的scripts中添加命令 采用形如 yarn build方式执行即可

    3.在.gitignore中忽略dist temp文件夹

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    第二个问题:如何去提取多个项目中共同的自动化构建过程

    封装自动化构建工作流

    gulp和gulpfile通过一个模块结合到一起,以后用这个新的模块去提供自动化构建工作流即可

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    1.zce-glup-pages项目为需要使用打包模块项目

    2.fjk-pages项目为打包压缩功能封装项目,需要链接到全局或者npm上使用

    从本地构建仓库到远端 git新建地址

    https://github.com/JinYoMo/fjk-pages
    
    git init //创建本地git 仓库
    git remote add origin https://github.com/JinYoMo/fjk-pages.git
    git status
    git add .
    git commit -m 'feat:initial commit'
    git push -u origin master  //git push -u origin master -f  git pull origin master
    

    封装自动化构建工作流——提取gulpfile文件到模块

    第一步:复制gulpfile到lib/index.js

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    第二步:将zce-glup-demo的package.json中的开发依赖devDependencies剪切(不保留)到fjk-pages的dependencies中,会跟着用到fjk-pages项目直接安装

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    第三步:将fjk-pages模块link到全局

    yarn link //在fjk-pages项目中执行
    yarn link "fjk-pages"  //在zce-glup-pages项目中执行 便可在zce-glup-pages中使用fjk-pages模块了
    

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    第四步:在zce-glup-pages项目中新建pages.config.js文件 将data数据导出,压缩时这些文件会将数据压缩到打包文件显示

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    yarn build  //在zce-glup-pages可以执行了 pages.config.js中的数据也拿到了
    

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    打包后 pages.config.js中的数据也拿到了

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    封装自动化构建工作流——抽象路径配置

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    封装自动化构建工作流——包装Gulp CLI

    bin/fjk.pages.js 作为cli的入口文件

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    注:下图中去掉zce-glup-pages项目根目录下的gulpfile.js文件

    实现zce-glup-pages项目根目录下不用必须有gulpfile.js,直接找fjk.pages下lib/index.js即可 这两个项目通过yarn link 可以联系 fjk-pages项目下yarn link 到全局, zce-glup-pages项目的node_modules就有了fjk-pages文件夹了

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    封装自动化构建工作流——发布并使用模块

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    yarn publish --registry https://registry.yarnpkg.com  //推到npm
    

    使用模块 新建fjk-pages-demo文件夹 包含pages.config.js文件

    yarn init --yes  //生成package.js文件
    yarn add fjk-pages --dev  //安装fjk-pages依赖
    yarn fjk-pages build  //执行构建命令
    

    fjk-pages-demo依赖node_modules中存在fjk-pages依赖 bin目录下含有fjk-pages命令

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    fjk-pages-demo项目目录如下

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    执行 yarn fjk-pages build 命令打包

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    命令优化——在项目package.json的scripts中注册命令

    yarn build //执行打包命令
    

    你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    完毕


    起源地下载网 » 你可以学到的——发布到npm的用于封装自动化构建工作流Gulp-CLI

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元