自动刷新前后端 大前端 初学者必经过程 gulp,browserSync,nodemon

gulp,browserSync,nodemon 自动刷新前后端html css js 初学者必经过程

一:前提

学习大前端必须经历的就是node.js敲码,可是一次又一次刷新,F5的重复按键是不是弄得有点虚脱了。nodemon很好安装,但是只能实现运行文件(app.js)的改变更新,如果改变其他.css和.html就无法办到了,所以必须搞个自动刷新的东东来配合我们的懒惰。

二:起步各个插件版本

  • 1:gulp的安装

npm install -g gulp@3.9.1

进行全局安装gulp,这里一定用4以下的版本,4以上gulp api用法变了,不用就会出现AssertionError [ERR_ASSERTION]: Task function must be specified。

npm install --save-dev gulp@3.9.1

在node.js所要运行项目的主目录下进行开发的gulp安装,以上先要建立npm init -y,创建package.json。

我的版本:

G:\webtest\nodeTest\nodeTest>gulp -v
[14:31:36] CLI version 3.9.1
[14:31:36] Local version 3.9.1
  • 2: browserSync

npm install -g browser-sync

这个也进行全局安装,配置一次,本台电脑其他项目都可使用。这个安装使用可以官网查看一下,也比较简单。browserSync官网

我的版本:

G:\webtest\nodeTest\nodeTest>browser-sync --version
2.26.13

-3:gulp-nodemon

npm install --save-dev gulp-nodemon

没什么说的,这个插件是node的主运行文件发生变化就进行更新如(app.js),还要安装主程序nodemon。

我的版本

G:\webtest\nodeTest\nodeTest>nodemon --version
2.0.6

以上一定要主要版本!!!

三:添加gulp脚本

在项目文件根目录里创建gulpfile.js文件,将下面代码存放到文件里,gulp@3 版本的代码,gulp@4 后期如有更新,进行更新。

// 添加引用
var gulp=require('gulp');
var browserSync = require('browser-sync');
var reload = browserSync.reload;
var nodemon = require('gulp-nodemon');
 
//这个可以让express启动
gulp.task("node", function() {
    nodemon({
        script: 'app.js',
        ext: 'js html',
        env: {
            'NODE_ENV': 'development'
        }
    })
});
 
gulp.task('server', ["node"], function() {
    var files = [
        'views/**/*.html',
        'views/**/*.ejs',
        'views/**/*.jade',
        'public/**/*.*'
    ];
 
    //gulp.run(["node"]);
    browserSync.init(files, {
        proxy: 'http://localhost:3000',
        browser: 'chrome',
        notify: false,
        port: 4001 //这个是browserSync对http://localhost:3000实现的代理端口
    });
 
    gulp.watch(files).on("change", reload);
});

以上代码从nodejs自动刷新如何实现的?文章复制的,只是更改了主入口位置,自己可根据自己需求更改。注意以上files下配置需要监控的文件目录。

四:运行

以上全部配置完毕,在项目所在目录下运行:

gulp server

然后你的项目就可以.html,.css,.js 保存就刷新。

G:\webtest\nodeTest\nodeTest>gulp server
[14:53:54] Using gulpfile G:\webtest\nodeTest\nodeTest\gulpfile.js
[14:53:54] Starting 'node'...
[14:53:54] Finished 'node' after 423 ms
[14:53:55] Starting 'server'...
[14:53:55] Finished 'server' after 431 ms
[14:53:55] [nodemon] 2.0.6
[14:53:55] [nodemon] to restart at any time, enter `rs`
[14:53:55] [nodemon] watching path(s): *.*
[14:53:55] [nodemon] watching extensions: js,html
[14:53:55] [nodemon] starting `node app.js`
app listening on port 3000!
[Browsersync] Proxying: http://localhost:3000
[Browsersync] Access URLs:
 --------------------------------------
       Local: http://localhost:4001
    External: http://192.168.0.106:4001
 --------------------------------------
          UI: http://localhost:3001
 UI External: http://localhost:3001
 --------------------------------------
[Browsersync] Watching files...

结束~

gulp4.0以上的 gulpfile.js 内容

晚上没事把gulp在b站上看了个快速入门,大概知道了 它的用法和结构,可惜看的还是4.0以下的API,自己又看了官网的新的API,拿旧的 gulpfile.js 胡乱改了一通,竟然把功能实现,但总感觉有很多漏洞,先记录下,如果有合适好的代码请留下你的脚步,让我好好学习下。下面就是gulp 4.0的gulpfile.js 文件内容:

// 添加引用
const { series, watch } = require('gulp');//引用gulp

let browserSync = require('browser-sync');//引用browser-sync 主要是刷新浏览器用

let nodemon = require('gulp-nodemon');//引用gulp-nodemon 主要是对node.js重启
 
 function node(cb) {//定义nodemon的参数
     nodemon({
         script: 'app.js',//nodemon app.js 入口参数
         ext: 'js html', //暂时不知道
         env: {'NODE_ENV': 'development'}//暂时不知道
     })
	 cb();//调用一下这个函数
 }
 
 function server() {
	let files = [//监控文件目录,需要监控哪个文件,自己更改
		'controllers/**/*.*',
		'models/**/*.*',
		'public/**/*.*',
		'routers/**/*.*',
		'views/**/*.*'
		];
		
    browserSync.init(files, {
        proxy: 'http://localhost:3000',
        browser: 'chrome',
        notify: false,
        port: 4001 //这个是browserSync对http://localhost:3000实现的代理端口
    });
	
    watch(files)//监控文件的监控函数,我也不知道怎么写,但这样可以执行,以后在来解决
}

exports.server = series(node,server);//把执行流暴露给cmd,可通过gulp server执行

以上就是自己乱改的文件,自己试了可以达到效果,但肯定有很多问题,小伙伴遇到问题大家可以一起探讨。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值