如何使用Express+Less+Gulp配置高效率开发环境
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要介绍如何使用Express+Less+Gulp配置高效率开发环境,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!配置下面说下我的配置方法:我的目录结构:├── app
千家信息网最后更新 2025年12月02日如何使用Express+Less+Gulp配置高效率开发环境
这篇文章主要介绍如何使用Express+Less+Gulp配置高效率开发环境,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
配置
下面说下我的配置方法:
我的目录结构:
├── app.js # Express Server├── bin│ └── www # 启动Server├── dist # 编译压缩目录(部署目录)│ ├── css│ ├── img│ ├── js│ ├── views│ └── lib # 第三方库目录(bower安装)├── .bowerrc # bower前端安装库├── gulpfile.js # Gulp配置文件├── package.json├── public # 开发目录 │ ├── img│ ├── js│ └── less ├── routes│ ├── index.js│ └── users.js└── views # html ├── error.ejs └── index.ejs
package.json文件内容:
{ "name": "voteapp", "version": "1.0.0", "description": "", "main": "app.js", "dependencies": { "body-parser": "~1.13.2", "cookie-parser": "~1.3.5", "debug": "~2.2.0", "ejs": "~2.3.3", "express": "~4.13.1", "morgan": "~1.6.1", "serve-favicon": "~2.3.0" }, "devDependencies": { "browser-sync": "^2.18.6", "del": "^2.2.2", "gulp": "^3.9.1", "gulp-cache": "^0.4.5", "gulp-clean-css": "^2.3.2", "gulp-concat": "^2.6.1", "gulp-ejs": "^2.3.0", "gulp-htmlmin": "^3.0.0", "gulp-imagemin": "^3.1.1", "gulp-less": "^3.3.0", "gulp-livereload": "^3.8.1", "gulp-nodemon": "^2.2.1", "gulp-uglify": "^2.0.0", "gulp-watch": "^4.3.11" }, "scripts": { "test": "echo \"Error: no test specified\">gulpfile.js文件
'use strict';var gulp = require('gulp');var minify = require('gulp-clean-css');var browserSync = require('browser-sync');var nodemon = require('gulp-nodemon');var cache = require('gulp-cache');var uglify = require('gulp-uglify');var htmlmin = require('gulp-htmlmin');var imagemin = require('gulp-imagemin');var less = require('gulp-less');var path = require('path');var livereload = require('gulp-livereload');var concat = require('gulp-concat');var jshint = require('gulp-jshint');var cssBase64 = require('gulp-base64');var del = require('del');// 删除文件gulp.task('clean', function(cb) { del(['dist/css/*', 'dist/js/*', 'dist/img/*','dist/views/*'], cb)});// 压缩ejsgulp.task('ejs', function() { return gulp.src('views/**/*.ejs') .pipe(htmlmin({collapseWhitespace: true})) .pipe(gulp.dest('dist/views/'));});// 压缩lessgulp.task('less', function () { return gulp.src('public/less/**/*.less') .pipe(less({ paths: [ path.join(__dirname, 'less', 'includes') ] })) .pipe(cssBase64()) .pipe(minify()) .pipe(gulp.dest('dist/css/'));});// 压缩jsgulp.task('js', function () { return gulp.src('public/js/**/*.js') .pipe(jshint()) .pipe(jshint.reporter('default')) .pipe(uglify({ compress: true })) .pipe(gulp.dest('dist/js/'))});// 压缩imggulp.task('img', function() { return gulp.src('public/img/**/*') //引入所有需处理的Img .pipe(imagemin({ optimizationLevel: 3, progressive: true, interlaced: true })) //压缩图片 // 如果想对变动过的文件进行压缩,则使用下面一句代码 // .pipe(cache(imagemin({ optimizationLevel: 3, progressive: true, interlaced: true }))) .pipe(gulp.dest('dist/img/')) // .pipe(notify({ message: '图片处理完成' }));});// 浏览器同步,用7000端口去代理Express的3008端口gulp.task('browser-sync', ['nodemon'], function() { browserSync.init(null, { proxy: "http://localhost:3008", files: ["dist/views/*.*","dist/css/*.*","dist/js/*.*","dist/img/*.*"], browser: "google chrome", port: 7000 });});// 开启Express服务gulp.task('nodemon', function (cb) { var started = false; return nodemon({ script: 'bin/www' }).on('start', function () { // to avoid nodemon being started multiple times // thanks @matthisk if (!started) { cb(); started = true; } });}); gulp.task('build',['clean','less','ejs','js','img'],function () {});gulp.task('default',['browser-sync'],function(){ // 将你的默认的任务代码放这 // 监听所有css文档 gulp.watch('public/less/*.less', ['less']); // 监听所有.js档 gulp.watch('public/js/*.js', ['js']); // 监听所有图片档 gulp.watch('public/img/**/*', ['img']); // 监听ejs gulp.watch('views/**/*.ejs', ['ejs']); // 创建实时调整服务器 -- 在项目中未使用注释掉 var server = livereload(); // 监听 dist/ 目录下所有文档,有更新时强制浏览器刷新(需要浏览器插件配合或按前文介绍在页面增加JS监听代码) gulp.watch(['public/dist/**']).on('change', function(file) { server.changed(file.path); });});app.js文件
var express = require('express');var path = require('path');var favicon = require('serve-favicon');var logger = require('morgan');var cookieParser = require('cookie-parser');var bodyParser = require('body-parser');var routes = require('./routes/index');var users = require('./routes/users');var app = express();// view engine setupapp.set('views', path.join(__dirname, 'dist/views'));app.set('view engine', 'ejs');// uncomment after placing your favicon in /public//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));app.use(logger('dev'));app.use(bodyParser.json());app.use(bodyParser.urlencoded({ extended: false }));app.use(cookieParser());app.use(express.static(path.join(__dirname, 'dist')));app.use('/', routes);app.use('/users', users);// catch 404 and forward to error handlerapp.use(function(req, res, next) { var err = new Error('Not Found'); err.status = 404; next(err);});// error handlers// development error handler// will print stacktraceif (app.get('env') === 'development') { app.use(function(err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: err }); });}// production error handler// no stacktraces leaked to userapp.use(function(err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: {} });});module.exports = app;然后先在根目录下执行安装:npm install,使用时先运行gulp build将文件压缩、打包、编译,然后再执行gulp开启自动更新服务器。
以上是"如何使用Express+Less+Gulp配置高效率开发环境"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
文件
目录
监听
配置
开发
代码
内容
图片
浏览器
服务
浏览
环境
高效率
文档
服务器
端口
篇文章
处理
更新
编译
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
魔兽世界服务器副本刷新时间
怀旧服甲虫在哪个服务器
山东大学网络安全研究生就业方向
网络安全的女老板
新密数据库采集工作站
q绑16e数据库api
软件开发有哪些地方好玩
数据库中常采用的安全措施
广西gis bim软件开发
设计数据库 考虑效率
网络安全的五大因素
国内数据库安全厂商
谢希仁网络技术训练
sql数据库书籍资料下载
县网络安全工作领导小组
如何使用数据库中的备份
服务器2000兆一个月多少钱
局网络安全岗位职责
电站网络安全培训的内容
华为数据库安全审计价格
软件开发模式 进度
服务器安全配置总结
软件开发怎么学的
智能化软件开发不二之选
拆迁软件开发费
武威软件开发公司电话
盘古众创网络技术有限公司
网络服务器在哪几个国家
县网络安全工作领导小组
namecheap服务器面板