基於webpack4
項目申明地點
關於前端工程化
前端蠻橫生長的時期已過去了。跟着前端的生長,愈來愈龐雜的營業,林林總總的插件模塊依靠關聯,項目龐雜度的提拔,開闢本錢愈來愈高。webpack就是處理了這一系列的題目。你能夠應用webpack治理種種資本,也能夠提早享用es6語法的方便,也能夠範例成員之間的開闢範例,等等。
關於wepback設置申明,許多同硯都已分享過許多了,此次分享一下能夠直接運用一份webpack項目
功用列表
- 模塊化治理資本文件,剖析編譯ES6語法
- 運用jslint,強迫校驗js語法,範例js謄寫劃定規矩,並自動修復部份語法花樣題目
- 運用styleLint,強迫校驗css,less語法,範例謄寫css,less劃定規矩
- 編譯less文件,自動增加瀏覽器前綴
- 緊縮js,css文件
- 運用PurifyCSS、OptimizeCssAssets,去除過剩css(未被運用),削減css大小,優化css構造,削減50%-80%的文件大小
- 支撐iconfont字體文件
- 自動引入html5shiv、respond,兼容h5標籤以及響應式
延續更新中
現在臨時不支撐vue,react
下載依靠
yarn add jay-webpack-scaffold
設置文件
cp ./node_modules/jay-webpack-scaffold/webpack/config.dist.js ./webpack-config.js
依據需求調解響應目次
設置文件參數
entry: 須要編譯輸出的js 根途徑
output: 輸出的途徑
mainJs: 全局運用的js文件途徑
lessPath: 須要編譯輸出的less 根途徑,該目次下,都邑被編譯輸出
publicPath: 開闢環境下,運用途徑
author: 作者稱號
removePattern: 不須要被輸出的文件途徑 正則表達式,比方 /^\/css\/.*\.js?$/,示意css目次下的一切js文件都不輸出(當less作為進口文件時,會輸出js文件)
purifyCssPaths: 被運用到css的一切文件地點,如html頁面和js,它會過濾除了這些被運用的css款式
copyLibs: 須要拷貝的類庫,能夠拷貝目次,也能夠拷貝零丁文件
alias: 援用別號,加速編譯速率
libs: js類庫目次,每一個文件都邑零丁輸出,能夠對已有的類庫模塊封裝輸出
代碼花樣化設置
設置js代碼作風
./node_modules/.bin/eslint --init
修復js代碼花樣
./node_modules/.bin/eslint --fix filepath
劃定規矩列表:https://eslint.org/docs/rules/
設置款式代碼作風
項目根目次 .stylelintrc
{
"extends": "stylelint-config-standard"
}
疏忽文件設置 .stylelintignore
劃定規矩列表:https://stylelint.io/user-gui…
開闢申明
範例:
- 默許加載全局的css和js文件,每一個頁面零丁具有一個css文件和js文件
- 設置參數lessPath,該目次下的每一個less文件都邑默許編譯輸出成css文件,被每一個頁面運用
- 設置參數entry,目次下的index.js定名的文件將會作為編譯輸出
- 設置參數mainJs, 全局加載的js
敕令(scripts)
"scripts": {
"build": "NODE_ENV=production settingPath='/webpack-config.js' webpack --config '/node_modules/jay-webpack-scaffold/webpack/webpack.js'",
"dev": "NODE_ENV=development settingPath='webpack-config.js' webpack-dev-server --config '/node_modules/jay-webpack-scaffold/webpack/webpack.js'",
}
你也能夠如許運用
webpack.config.js
const webpackConfig = require('jay-webpack-scaffold');
module.exports = webpackConfig;
// 能夠自立設置loadeer,plugin,及其他參數
package.json
"scripts": {
"build": "NODE_ENV=production settingPath='/webpack-config.js' webpack --config 'webpack.config.js'",
"dev": "NODE_ENV=development settingPath='webpack-config.js' webpack-dev-server --config 'webpack.config.js'",
}
當地開闢環境實行以下敕令:
npm run dev
它將會文件天生好,放入內存中。自動監聽文件變化
<br/>
臨盆環境實行以下敕令:
npm run build
它將會臨盆靜態資本文件到你定義的目次下
項目中運用
ngixn設置
location ~ ^/dist {
if (-f $root_dir/dev.lock){
proxy_pass http://127.0.0.1:8082;
}
}
任何/dist/* 的要求,都邑代理到http://127.0.0.1:8082,依據差別需求響應設置
異常情況
npm run dev 實行報錯
- 有能夠依靠沒有下載完成,實行yarn
- 有能夠端口被佔用 實行以下敕令
lsof -i:8082 (檢察佔用端口歷程)
kill -9 PID (pid 為歷程id號)
介入開闢
- 下載項目: git clone https://github.com/Jay-tian/w…
- 啟動效勞:進入項目根目次,實行 npm run dev
- 將會翻開 http://127.0.0.1:8082/,資本文件在src下,修正代碼將會常常見效
- http://127.0.0.1:8082/webpack-dev-server, 該途徑供應了編譯輸出的資本途徑(資本不是實體文件)