返回顶部
首页 > 资讯 > 前端开发 > node.js >怎么用Gulp搭建简易前端自动化工程
  • 869
分享到

怎么用Gulp搭建简易前端自动化工程

2024-04-02 19:04:59 869人浏览 独家记忆
摘要

本篇内容主要讲解“怎么用Gulp搭建简易前端自动化工程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Gulp搭建简易前端自动化工程”吧!准备工作安装Nod

本篇内容主要讲解“怎么用Gulp搭建简易前端自动化工程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Gulp搭建简易前端自动化工程”吧!

准备工作

安装Node

首先Gulp是基于nodejs的,所以安装nodejs是前提,Node可以说是前端神器,基于Node有各种各样的工具,正是因为这些工具让我们非常方便的构建前端工程。

更改Node插件默认安装位置(非必需)

我自己一般不喜欢在C盘状太多与系统无关的东西,而通过Node自带的npm安装的插件默认在C盘,但是我将Node安装到D盘后,想让插件就安装在Nodejs的主目录下,怎么办呢?

  • 在Node主目录下新建"node_global"及"node_cache"两个文件夹

  • 启动cmd,输入 //后面的设置目录根据你的目录结构自行更改 npm config set prefix "D:\Program\nodejs\node_global" npm config set cache "D:\Program\nodejs\node_cache"
  • 关闭cmd,打开系统对话框,“我的电脑”右键“属性”-“高级系统设置”-“高级”-“环境变量”。

  • 进入环境变量对话框,在系统变量下新建"NODE_PATH",输入"D:Programnodejsnode_globalnode_module"。  由于改变了module的默认地址,所以上面的用户变量都要跟着改变一下(用户变量"PATH"修改为"D:Programnodejsnode_global"),要不使用module的时候会导致输入命令出现“xxx不是内部或外部命令,也不是可运行的程序或批处理文件”这个错误。

经过这四步的设置就可以让安装的Node插件放在Nodejs的主目录了。

安装Gulp

//全局安装Gulp npm install -g gulp //在项目中安装Gulp npm install --save-dev gulp

运行gulp -v,如果不报错,表示安装成功

然后在命令行运行

npm init

让项目生产package.JSON文件

搭建工程

众所周知,在开发工程中有开发和上线两个过程,在开发中,我们一般需要自动刷新以及实时编译,但是如果上线,我们就需要考虑很多优化的东西,比如文件编译压缩,静态资源放缓存处理等等问题,我自己搭的这个工程只涉及到文件编译压缩,实时刷新,静态资源放缓存这三个基本的流程。

在项目的目录结构如下

-------------------project     |     |--------------dist (该文件夹为打包生成的)     |   |     |   |----------CSS     |   |   |     |   |   |------index-9dcc24fe2e.css     |   |     |   |----------js     |   |   |     |   |   |------index-9dcc24fe2e.js     |   |----------index.html      |     |--------------src     |   |     |   |----------scss     |   |   |     |   |   |------index.scss     |   |     |   |----------js     |   |   |     |   |   |------index.js     |   |     |   |----------index.html     |--------------gulpfile.js     |--------------package.json

开发所用流程

文件编译

在工程中准备使用scss作为css的预编译,所以需要利用gulp对scss进行编译,所以首先安装gulp-sass。

npm install --save-dev gulp-sass

安装完成之后,直接在gulpfile.js引用配置

const sass = require('gulp-sass'); //scss编译  gulp.task('scss:dev',()=>{     gulp.src('src/scss*.json','src/*.html'])         .pipe(reCollector({             replaceReved: true,  //模板中已经被替换的文件是否还能再被替换,默认是false             dirReplacements: {   //标识目录替换的集合, 因为gulp-rev创建的manifest文件不包含任何目录信息,                 'css/': '/dist/css/',                 'js/': '/dist/js/'             }         }))         .pipe(gulp.dest('dist')) });

并没有正常替换?

在我自己写的时候,出现这个问题,运行完成该任务后,html中的css和js引用并没有发生变化,网上搜了半天,才知道是由于自己用了gulp-rename插件,然后将文件名都添加了.min(至于为什么添加,仅仅是因为是压缩过的,应该写个)而在自己写的html里面引用的文件并没有.min,由于gulp-rev-collector在替换的时候根据生成的json文件替换,在json中,文件都有了.min而在html中没有,所以无法匹配,自然也就不能实现替换了,所以在替换的时候一定要注意gulp-rev生成的json文件中的css,js与html中的引用的一样,否则无法实现替换。

<font  color="red">在gulp-rev-collector的api中有一个revSuffix,这个看起来可以实现类似于gulp-rename的功能,但是不知道该怎么用,大家如果知道的话请告诉我...</font>

执行所有任务

完成上面几个步骤后我们将所有任务串起来,让其可以一条命令然后全部执行

gulp.task('build',['clean', 'css', 'js', 'reCollector']);

再次理解gulp

gulp---它的task是顺序执行吗?

本以为到这里,就算是写完了,运行,***,打包生成文件,再运行一次,报错了!!!!

[19:04:57] Finished 'default' after 7.38 &mu;s stream.js:74       throw er; // Unhandled stream error in pipe.       ^  Error: ENOENT: no such file or directory, stat 'D:\project\dist\js\index-6045b384e6.min.js'     at Error (native)

提示我找不到这个文件,这让我很郁闷啊,然后我分开执行,很ok,可以确定是执行顺序有问题,很可能在没有清理完成就执行后面了,查了gulp的官网文档才知道本身gulp的pipe是一个一个任务进行的,是同步的,但是每个task之间是不同步的,是一起进行的,这也验证了我的猜想,所以在网上找如何解决这个问题,找到一个叫run-sequence的npm插件,配置文件如下:

//进行打包上线 gulp.task('build', ()=> {     runSequence('clean', ['css', 'js'], 'reCollector'); });

本以为运行就ok,结果,还是报错,这里就涉及到对gulp的另一个理解

run-sequence插件对异步任务的处理

在用这个插件让任务有序进行后,我想进一步直观的看到它对任务的序列化,自己写了一个demo,如下:

gulp.task('a',function(){     setTimeout(function () {         console.log(1);     },30); }); gulp.task('b',function() {     console.log(2); }); gulp.task('ab',function(){     runSequence('a','b'); });

但是这里就出现问题了,runSequence不管用了,找插件的说明和gulp官方文档,原来异步任务,像setTimeout,readFile等,需要添加一个callback的执行,这里的callback()就会返回一个promise的resolve(),告诉后面的任务,当前任务已经完成,后面可以继续执行了,所以在task  a里面执行callback。

gulp.task('a',function(cb){     setTimeout(function () {         console.log(1);         cb();     },30); });

那为什么前面写的那些任务不需要添加一个callback呢?由于gulp的pipe流让每一个task中的小任务(每一个pipe)顺序执行,从而整个pipe流是同步的,并不是异步任务,所以并不需要手动让其返回promise,run-sequence会自动帮我们管理。

到此,相信大家对“怎么用Gulp搭建简易前端自动化工程”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 怎么用Gulp搭建简易前端自动化工程

本文链接: https://lsjlt.com/news/86316.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用Gulp搭建简易前端自动化工程
    本篇内容主要讲解“怎么用Gulp搭建简易前端自动化工程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Gulp搭建简易前端自动化工程”吧!准备工作安装Nod...
    99+
    2024-04-02
  • 前端构建工具之gulp怎么用
    这篇文章将为大家详细讲解有关前端构建工具之gulp怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言在如今的前端开发中,已经不再是一些静态文件了。对于很多Web A...
    99+
    2024-04-02
  • nodejs前端自动化构建环境的搭建
    为了UED前端团队更好的协作开发同时提高项目编码质量,我们需要将Web前端使用工程化方式构建; 目前需要一些简单的功能: 1. 版本控制 2. 检查JS 3. 图片合并 4...
    99+
    2022-06-04
    环境 nodejs
  • 前端自动化开发之Node.js的环境搭建教程
    一、为什么我们前端自动化开发 相信任何学开发的,不管学什么语言,老师都这样讲过,作为一名开发人员,你最大的精力应该是放在创造力上面,don't you repeat myself 不要重复自己,而在我们开...
    99+
    2022-06-04
    环境 教程 Node
  • 在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
    安装 node.js 首先需要安装 node.js, 通常情况下,只需要到 Node.js 官网下载安装包安装就可以了。不过我可耻的失败了,弹出了如下错误: 于是我换成了 brew 大法: bre...
    99+
    2022-06-04
    工具 项目 OS
  • Python编程的简易版自动化工具ADB的工作原理以及用法
    本篇文章为大家展示了Python编程的简易版自动化工具ADB的工作原理以及用法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前言ADB,中文名安卓调试桥,它是一种功能多样的命令行工具,可用于执行各种...
    99+
    2023-06-15
  • python自动化环境怎么搭建
    要搭建Python自动化环境,可以按照以下步骤进行: 安装Python:首先需要下载并安装Python解释器。可以从Python...
    99+
    2023-10-22
    python
  • 使用docker搭建jenkins自动化工具的实现
    目录一、jenkins二、基于docker 搭建 jenkins三、jenkins 自动发布 SpringBoot 镜像一、jenkins Jenkins是一个开源软件项目,是基于J...
    99+
    2024-04-02
  • 怎么搭建Python+Selenuim自动化环境
    这篇文章主要介绍“怎么搭建Python+Selenuim自动化环境”,在日常操作中,相信很多人在怎么搭建Python+Selenuim自动化环境问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么搭建Pytho...
    99+
    2023-06-19
  • 怎么使用Jenkins搭建PHP的自动化构建环境
    本篇内容介绍了“怎么使用Jenkins搭建PHP的自动化构建环境”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是Jenkins?Jenk...
    99+
    2023-07-05
  • python接口自动化框架怎么搭建
    要搭建Python接口自动化框架,可以按照以下步骤进行: 确定需要使用的Python库:一般情况下,需要使用requests库来...
    99+
    2023-10-23
    python
  • 怎么搭建jenkins实现自动化部署
    要搭建Jenkins实现自动化部署,您需要按照以下步骤进行操作:1. 安装Jenkins:您可以从Jenkins官方网站下载适用于您...
    99+
    2023-08-12
    jenkins
  • node.js自动化部署环境怎么搭建
    本篇内容介绍了“node.js自动化部署环境怎么搭建”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、docker部分1.1、docker简...
    99+
    2023-07-04
  • Linux自动化构建工具Makefile与make怎么用
    这篇文章主要介绍“Linux自动化构建工具Makefile与make怎么用”,在日常操作中,相信很多人在Linux自动化构建工具Makefile与make怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”L...
    99+
    2023-06-28
  • 怎么用原生js代码实现前端简易路由
    这篇文章主要讲解了“怎么用原生js代码实现前端简易路由”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用原生js代码实现前端简易路由”吧!路由到底是一个什么东西路由(routing)就是通...
    99+
    2023-06-30
  • Linux自动化构建工具make和Makefile怎么使用
    这篇文章主要讲解了“Linux自动化构建工具make和Makefile怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux自动化构建工具make和Makefile怎么使用”吧!一...
    99+
    2023-07-06
  • 怎么使用Docker自动搭建GitLab
    本文小编为大家详细介绍“怎么使用Docker自动搭建GitLab”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用Docker自动搭建GitLab”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。第一步:安装D...
    99+
    2023-07-05
  • 怎么用gulp4.0搭建一个前端脚手架
    这篇文章主要介绍“怎么用gulp4.0搭建一个前端脚手架”,在日常操作中,相信很多人在怎么用gulp4.0搭建一个前端脚手架问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么...
    99+
    2024-04-02
  • 使用HTML5怎么实现移动端简易进度条
    使用HTML5怎么实现移动端简易进度条?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。touchstart: 当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上...
    99+
    2023-06-09
  • 怎么搭建docker+jenkins+node.js自动化部署环境
    本篇内容介绍了“怎么搭建docker+jenkins+node.js自动化部署环境”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作