黨建網(wǎng)站安全建設(shè)alexa全球網(wǎng)站排名分析
3 webpack生產(chǎn)環(huán)境配置
由于筆記文檔沒有按照之前的md格式書寫,所以排版上代碼上存在問題😢😢😢😢
09 提取css成單獨文件
- 使用下載插件 npm i mini-css-extract-plugin@0.9.0 -D
- webpack配置
- 此時a,b提取成單獨文件,并且頁面顯示正確
10 css兼容性處理
- 使用下載插件 ?npm i postcss-loader@3.0.0 postcss-preset-env@6.7.0 -D
- 寫相應(yīng)的配置
源代碼:
JavaScript |
- 需要在package.json配置
11 壓縮css
配置中,要么用loader,要么用插件,loader做事一遍比較少,更多的用插件 兼容性一般靠loader,壓縮靠插件 |
- 下載插件? npm i optimize-css-assets-webpack-plugin@5.0.3 -D
- webpack配置
- 打包 npx webpack
- 可以看到build/css/build.css代碼壓縮成一行
壓縮css插件?? optimize-css-assets-webpack-plugin 壓縮讓文件體積變小,請求速度就會越快,加載速度就快,用戶看到效果就越快,用戶體驗就會更好, 代碼上線之前就一定要壓縮 |
12 js語法檢查
- 需要將airbnb/javascript 這個規(guī)則用到eslint
- 下載使用到的插件
?npm i eslint@6.8.0 eslint-loader@3.0.3 eslint-plugin-import@2.20.1 eslint-config-airbnb-base@14.0.0 -D
- webpack配置
JavaScript |
- 其中需要到package.json里面配置
- 打包之后效果
js語法檢查
|
13 js兼容性處理
- 下載插件?? npm i babel-loader@8.0.6 @babel/preset-env@7.8.4 @babel/core@7.8.4 -D
- webpack配置
但是只能轉(zhuǎn)換基本語法,promise就不能,需要全部兼容性處理
- 下載?? npm i @babel/polyfill@7.8.3 -D
從Babel 7.4.0開始,這個包已經(jīng)被廢棄了,取而代之的是直接包含core-js/stable
我只要解決部分兼容性問題,但是將所有兼容性代碼全部引入,體積太大了
需要做兼容性處理的就做:按需加載?? core.js
- 下載 npm i core-js@3.6.4 -D
- 最終webpack配置
JavaScript |
js兼容性處理:babel-loader @babel/core ????????? 1. 基本js兼容性處理 --> @babel/preset-env ??????????? 問題:只能轉(zhuǎn)換基本語法,如promise高級語法不能轉(zhuǎn)換 ????????? 2. 全部js兼容性處理 --> @babel/polyfill??? ----不用寫配置,直接在入口文件里面引入即可 import '@babel/polyfill'; ??????????? 問題:我只要解決部分兼容性問題,但是將所有兼容性代碼全部引入,體積太大了~ ????????? 3. 需要做兼容性處理的就做:按需加載? --> core-js 一般最終都是通過第一步和第三步一起完成的 |
14 壓縮? js
只需要將development調(diào)成production即可,生產(chǎn)環(huán)境下會自動壓縮js代碼,production里面的UglifyJsPlugin插件會自動去壓縮js,內(nèi)部都實現(xiàn)好了
15 壓縮? html
在HtmlWebpackPlugin里加一個選項minify
16 生產(chǎn)環(huán)境基本配置
JavaScript |