使用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