使用gulp搭建一个传统的多页面前端项目的开发环境css
pug
scss
es6
编译支持sourceMap
相对路径
(1) git clone https://github.com/lfyfly/gulp-easy.git
或者下载 zip包
html
(2)删除项目下的所以目录.git
文件夹,这是个人commit记录,因此删除前端
(3)npm install
安装依赖node
(4)npm run dev
git
npm run dev
进入开发模式es6
npm run build
打包命令github
npm run start
打包而且以dist
为根目录开启服务器查看效果npm
npm run sp
把根目录下的sprites文件夹下的子目录内的全部文件夹中的png和jpg的图片,以子文件夹目录为单位生产雪碧图,文件名为子目录名gulp
npm run lint
eslint检测api
npm run fix
eslint修复
src是源码目录,能够经过
config.srcPath
进行配置,如下src只目录只是个例子,表明源码目录
src/static
静态文件目录
src/static/_vendor
第三方js,css,iconfont等
src/_scss
scss模块目录,里面的.scss
文件不会被单独编译成css文件
src/_pug
pug模块目录,里面的.pug
文件不会被单独编译成html文件
src/_modules
该目录里面的.pug
,.scss
文件不会被单独编译成html文件
根目录下的config.js
module.exports = { srcPath: 'src', pug: true, scss: true, babel: true, tmpPath: 'node_modules/__tmp__', build: { htmlmin: true, cssmin: true, jsmin: true, base64: 10 * 1024, // (bytes) 使用css中图片使用相对路径,否者无效 cssSourcemap: true, jsSourcemap: true, cdn: 'http://your/cdn/url/', versionHash: true, // 版本hash }, proxyTable: { '/api': 'http://localhost:3000', '/hehe': { target: 'http://localhost:3000', pathRewrite: { // 地址重写 '^/hehe': '/api' } } } }
如不须要使用某个配置项目,直接将其注释便可
配置目录源文件目录,默认为'src'
true
时,会开启对src
目录内全部的.pug
文件(除src/_pug/
外)编译成htmlsrc/_pug
做为pug的模块目录,不会被单独编译为html文件true
时,会开启对src内全部的.scss
,.sass
文件(除src/_scss
外)编译成scsssrc/_scss/
做为scss的模块目录,不会被单独编译为css文件true
时,会开启对src
目录内全部的.js
文件(除src/static/vendor/
外)编译成es5.babelrc
文件'node_modules/__tmp__'
npm run dev
做为.pug
,.scss
,.js
文件编译的临时文件目录,和src
同为静态文件目录,且优先级高于src目录
browserSync.init({ server: { baseDir: [config.tmpPath, 'src'], }, middleware, port: 9000, online: false })
src/static/public/public.scss
在html的访问路径为/static/public/public.css
npm run dev
config.tmpPath
都会被清理config.build | 描述 |
---|---|
htmlmin | 值为true 时开启html压缩 |
cssmin | 值为true 时开启css压缩 |
jsmin | 值为true 时开启js压缩 |
base64 | Number类型,单位(bytes),当css图片大小小于该值时将转base64css中图片地址必须为相对路径才会生效 |
cssSourcemap | 值为true 时,生成cssSourcemap文件 |
jsSourcemap | 值为true 时,生成jsSourcemap文件 |
cdn | 值为你的cdn地址 |
versionHash | 值为true 时,生成css js文件版本hash值 |
proxyTable | 代理配置,http-proxy-middleware |
proxyTable: { '/api': 'http://localhost:3000', '/hehe': { target: 'http://localhost:3000', pathRewrite: { // 地址重写 '^/hehe': '/api' } } }
src
目录使用html,css,js构建项目
src-1
目录使用pug(可选用),scss,js构建项目
将config.srcPath
值设为src-1
便可切换到该项目
推荐使用sea.js
或require.js
进行模块管理
推荐使用浏览器插件进行提示,还能够配置保存时自动修复eslint
// 当前环境为开发环境 var isDev = !!document.getElementById('__bs_script__')
注意: isDev只能在body标签内的js中这样获取,或者在DOMContenLoaded
或load
事件回调中初始化 isDev