SpringBoot+Vue+mysql 搭建(二)node 和gulp环境的设置

安装node不再写 gulp 参考以下文档
https://blog.csdn.net/a599174211/article/details/82878095
1.使用npm命令安装,一下两个命令都需要使用
gulp的安装非常简单,只要使用npm命令安装即可。但是因为gulp需要作为命令行的方式运行,因此需要在安装在系统级别的目录中。
npm install gulp -g
因为在本地需要使用require的方式gulp。(需要进入到项目的路径下面)因此也需要在本地安装一份:
npm install gulp --save-dev
2 创建gulp任务: 
要使用gulp来流程化我们的开发工作。首先需要在项目的根目录下创建一个gulpfile.js文件。然后在gulpfile.js中填入以下代码:
var gulp = require("gulp")
gulp.task("greet",function () {
    console.log('hello world');
});
这里对代码进行一一解释:
通过require语句引用已经安装的第三方依赖包。这个require只能是引用当前项目的,不能引用全局下的。require语法是node.js独有的,只能在node.js环境下使用。
gulp.task是用来创建一个任务。gulp.task的第一个参数是命令的名字,第二个参数是一个函数,就是执行这个命令的时候会做什么事情,都是写在这个里面的。
写完以上代码后,以后如果想要执行greet命令,那么只需要进入到项目所在的路径,然后终端使用gulp greet即可执行。
3. 创建处理css文件的任务:
gulp只是提供一个框架给我们。如果我们想要实现一些更加复杂的功能,比如css压缩,那么我们还需要安装一下gulp-cssnano插件。gulp相关的插件安装也是通过npm命令安装,安装方式跟其他包是一模一样的(gulp插件本身就是一个普通的包)。
对css文件的处理,需要做的事情就是压缩,然后再将压缩后的文件放到指定目录下(不要和原来css文件重合了)!这里我们使用gulp-cssnano来处理这个工作:
npm install gulp-cssnano --save-dev
然后在gulpfile.js中写入以下代码:
var gulp = require("gulp")
var cssnano = require("gulp-cssnano")
 
// 定义一个处理css文件改动的任务
gulp.task("css",function () {
    gulp.src("./css/*.css")
    .pipe(cssnano())
    .pipe(gulp.dest("./css/dist/"))
});
以上对代码进行详细解释:
gulp.task:创建一个css处理的任务。
gulp.src:找到当前css目录下所有以.css结尾的css文件。
pipe:管道方法。将上一个方法的返回结果传给另外一个处理器。比如以上的cssnano。
gulp.dest:将处理完后的文件,放到指定的目录下。不要放在和原文件相同的目录,以免产生冲突,也不方便管理。
4. 修改文件名:
像以上任务,压缩完css文件后,最好是给他添加一个.min.css的后缀,这样一眼就能知道这个是经过压缩后的文件。这时候我们就需要使用gulp-rename来修改了。当然首先也需要安装npm install gulp-rename --save-dev。示例代码如下:
var gulp = require("gulp")
var cssnano = require("gulp-cssnano")
var rename = require("gulp-rename")
gulp.task("css",function () {
    gulp.src("./css/*.css")
    .pipe(cssnano())
    .pipe(rename({"suffix":".min"}))
    .pipe(gulp.dest("./css/dist/"))
});
在上述代码中,我们增加了一行.pipe(rename({"suffix":".min"})),这个我们就是使用rename方法,并且传递一个对象参数,指定修改名字的规则为添加一个.min后缀名。这个gulp-rename还有其他的指定文件名的方式,比如可以在文件名前加个前缀等。更多的教程可以看这个:https://www.npmjs.com/package/gulp-rename。
5. 创建处理js文件的任务: 
处理js文件,我们需要使用到gulp-uglify插件。安装命令如下:
npm install gulp-uglify --save-dev
安装完后,我们就可以对js文件进行处理了。示例代码如下:
var gulp = require("gulp")
var rename = require("gulp-rename")
var uglify = require('gulp-uglify');
gulp.task('script',function(){
    gulp.src(path.js + '*.js')
    .pipe(uglify())
    .pipe(rename({suffix:'.min'}))
    .pipe(gulp.dest('js/'));
});
这里就是增加了一个.pipe(uglify())的处理,对js文件进行压缩和丑化(修改变量名)等处理。更多关于gulp-uglify的教程。请看:https://github.com/mishoo/UglifyJS2#minify-options。
6. 合并多个文件:
在网页开发中,为了加快网页的渲染速度,有时候我们会将多个文件压缩成一个文件,从而减少请求的次数。要拼接文件,我们需要用到gulp-concat插件。安装命令如下:
npm install gulp-concat --save-dev
比如我们现在有一个nav.js文件用来控制导航条的。有一个index.js文件用来控制首页整体内容的。那么我们可以使用以下代码将这两个文件合并成一个文件:
var gulp = require('gulp');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
gulp.task('vendorjs',function(){
    gulp.src([
        './js/nav.js',
        './js/index.js'
    ])
    .pipe(concat('index.min.js'))
    .pipe(uglify())
    .pipe(gulp.dest('dist/js/'));
});
7. 压缩图片:
图片是限制网站加载速度的一个主要原因。图片越大,从网站上下载所花费的时间越长。因此对于一些图片,我们可以采取无损压缩,即在不改变图片质量的基础之上进行压缩。在gulp中我们可以通过gulp-imagemin来帮我们实现。安装命令如下:
npm install gulp-imagemin --save-dev
压缩图片也是一个比较大的工作量,对于一些已经压缩过的图片,我们就没必要再重复压缩了。这时候我们可以使用gulp-cache来缓存那些压缩过的图片。安装命令如下:
npm install gulp-cache --save-dev
两个插件结合使用的代码如下:
var imagemin = require('gulp-imagemin');
var cache = require('gulp-cache');
gulp.task('image',function(){
    gulp.src("./images/*.*")
    .pipe(cache(imagemin()))
    .pipe(gulp.dest('dist/images/'));
});
8. 检测代码修改,自动刷新浏览器:
以上我们实现了更改一些css文件后,可以自动执行处理css的任务。但是我们还是需要手动的去刷新浏览器,才能看到修改后的效果。有什么办法能在修改完代码后,自动的刷新浏览器呢。答案是使用browser-sync。browser-sync安装的命令如下:
npm install browser-sync --save-dev
browser-sync使用的示例代码如下:
var gulp = require("gulp")
var cssnano = require("gulp-cssnano")
var rename = require("gulp-rename")
var bs = require("browser-sync").create()
 
gulp.task("bs",function () {
    bs.init({
        'server': {
            'baseDir': './'
        }
    });
});
 
// 定义一个处理css文件改动的任务
gulp.task("css",function () {
    gulp.src("./css/*.css")
    .pipe(cssnano())
    .pipe(rename({"suffix":".min"}))
    .pipe(gulp.dest("./css/dist/"))
    .pipe(bs.stream())
});
 
// 定义一个监听的任务
gulp.task("watch",function () {
    gulp.watch("./css/*.css",['css'])
});
 
// 执行gulp server开启服务器
gulp.task("server",['bs','watch'])
以上我们创建了一个bs的任务,这个任务会开启一个3000端口,以后我们在访问html页面的时候,就需要通过http://127.0.0.1:3000的方式来访问了。然后接下来我们还定义了一个server任务。这个任务会去执行bs和watch任务,只要修改了css文件,那么就会执行css的任务,然后就会自动刷新浏览器。
browser-sync更多的教程请参考:http://www.browsersync.cn/docs/gulp/。
————————————————
版权声明:本文为CSDN博主「a599174211」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/a599174211/article/details/82878095
SpringBoot+Vue+mysql 搭建(二)node 和gulp环境的设置的更多相关文章
- SpringBoot+Vue+mysql 搭建(一)
		
一.创建Spring boot maven 项目 Spring initializr 是Spring 官方提供的一个用来初始化一个Spring boot 项目的工具. 在idea中,直接 File-& ...
 - springboot成神之——springboot+mybatis+mysql搭建项目简明demo
		
springboot+mybatis+mysql搭建项目简明demo 项目所需目录结构 pom.xml文件配置 application.properties文件配置 MyApplication.jav ...
 - kotlin+springboot+mybatis-puls+mysql搭建gradle-web工程
		
kotlin+springboot+mybatis-puls+mysql搭建web工程  前段时间研究了spring security及OAuth2系列之后,本来打算研究spring的,但是部门发生 ...
 - .NetCore WebApi + Vue +MySql搭建博客
		
因为我是一直写C#的,所以最近闲暇时间一直在学习.NET Core,该博客的后端使用的就是.NET Core WebApi然后加前端Vue. 首先后端.NET Core搭的框架是一个仓储层+服务层+A ...
 - Node+Express+MongoDB + Socket.io搭建实时聊天应用实战教程(二)--node解析与环境搭建
		
前言 本来开始写博客的时候只是想写一下关于MongoDB的使用总结的,后来觉得还不如干脆写一个node项目实战教程实战.写教程一方面在自己写的过程中需要考虑更多的东西,另一方面希望能对node入门者有 ...
 - linux(center OS7)安装JDK、tomcat、mysql  搭建java web项目运行环境
		
一.安装JDK 1.卸载旧版本或者系统自带的JDK (1)列出所有已安装的JDK rpm -qa | grep jdk (2)卸载不需要的JDK yum -y remove 安装包名称 2.下载并解压 ...
 - SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(一): 搭建基本环境、整合 Swagger、MyBatisPlus、JSR303 以及国际化操作
		
相关 (1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https://www.cnblogs.com/l-y- ...
 - 浅试WebStorm配置Node.js开发环境
		
web前端开发IDE一直喜欢用WebStorm,这里简单介绍如何用WebStorm搭建一个Node.js开发环境. 首先,需要在本地安装好node.js,以及npm包管理工具.你也可以吧node.js ...
 - 从零开始搭建框架SSM+Redis+Mysql(二)之MAVEN项目搭建
		
从零开始搭建框架SSM+Redis+Mysql(二)之MAVEN项目搭建 废话不说,直接撸步骤!!! 1.创建主项目:ncc-parent 选择maven创建项目,注意在创建项目中,packing选择 ...
 
随机推荐
- HTTP协议和HTTPS协议的那些事
			
文章目录 HTTPS VS HTTP HTTPS=HTTP+加密+证书+完整性保护 加密 对称加密 非对称加密 混合加密 证书 完整性保护 HTTPS并不能取代HTTP SSL是把双刃剑 HTTPS的 ...
 - Xshell在Windows和Linux间文件的上传和下载
			
本文通过lrzsz来实现Windows和Linux间文件间的文件传输. lrzsz使用 XMODEM.YMODEM 和 ZMODEM 文件传输协议来实现文件的上传和下载.相比 FTP 或者 WinSC ...
 - MySQL常见的函数
			
一.概述 功能:类似于java中的方法 好处:提高重用性和隐藏实现细节 调用:select 函数名(实参列表); 二.单行函数 1.字符函数 concat:连接 substr:截取子串 upper:变 ...
 - linux系统开机流程
			
基本步骤:上电->bios->MBR引导->GRUB菜单->加载内核->运行init进程初始化->启动/etc/rc.d*脚本与相关配置文件->执行rc.lo ...
 - 快速上手 vue3
			
当前为vue3的基础知识点,为总结b站某视频的知识文章,在刚开始学习时自我保存在语雀,现在分享到博客. 目前找不到原视频文章地址了!!!要有兄弟看到原文地址:欢迎在下面评论! Vue3新的特性 Com ...
 - 【C# .Net GC】Windows 系统上的大型对象堆
			
原文链接:https://docs.microsoft.com/zh-cn/dotnet/standard/garbage-collection/large-object-heap NET 垃圾回收器 ...
 - Oracle之表和字段的注释
			
给表名加上注释 --给表名加上注释的语法结构 --语法结构:COMMENT ON TABLE 英文表名 IS '中文注释' COMMENT ON TABLE DEPT IS '部门表'; 给字段加上注 ...
 - python爬虫之抓取小说(逆天邪神)
			
2022-03-06 23:05:11 申明:自我娱乐,对自我学习过程的总结. 正文: 环境: 系统:win10, python版本:python3.10.2, 工具:pycharm. 项目目标: 实 ...
 - Pycharm:运行程序后显示各种变量的数据栏
			
右边这个数据栏的显示 在Edit Configurations中勾选Run With Python Console 如果想隐藏:
 - C#集合,字典的运用
			
三个题解释所有 using System;using System.Collections.Generic;using System.Linq;using System.Text;using Syst ...