webpack --- [读书笔记] webpack中常用的一些配置项
1. Webpack
當(dāng)前Web開發(fā)面臨的困境
- 文件依賴關(guān)系錯綜復(fù)雜
- 靜態(tài)資源請求效率低
- 模塊化支持不友好
- 瀏覽器對高級JavaScript特性兼容程度低
1.1 webpack概述
webpack是一個流行的前端項(xiàng)目構(gòu)建工具,可以解決當(dāng)前web開發(fā)中所面臨的困境.
webpack提供了友好的模塊化支持,以及代碼壓縮混淆、處理js兼容問題、性能優(yōu)化等強(qiáng)大的功能,從而讓程序員把工作的重心放到具體的功能實(shí)現(xiàn)上,提高了開發(fā)效率和項(xiàng)目的可維護(hù)性
1.2 webpack的基本使用
1.2.1 創(chuàng)建列表隔行變色項(xiàng)目
1.2.2 在項(xiàng)目中安裝和配置webpack
完成上述配置后,在命令行輸入:npm run dev, webpack就會在當(dāng)前目錄的dist文件夾下面自動生成一個main.js文件.里面裝的是瀏覽器兼容的JS代碼,因此只需在index.html中導(dǎo)入main.js即可完成2.2.1的需求
1.2.3 入口與出口
webpack的4.x版本中默認(rèn)約定:
- 打包的入口文件為 src -> index.js
- 打包的輸出文件為 dist -> main.js
如果要修改打包的入口與出口,可以修改webpack.config.js:
const path = require('path'); module.exports = {entry: path.join(__dirname, './src/index.js'),output: {path: path.join(__dirname, './dist'),filename: 'bundle.js'} }1.2.4 自動打包功能
第一句話說明項(xiàng)目運(yùn)行在 'http://localhost:8080’中
第二句話說明項(xiàng)目的打包文件在當(dāng)前目錄下,最好一句話說明打包的名字為bundle.js(在內(nèi)存中)
因此需要在index.html 導(dǎo)入打包的文件
1.2.5 html-webpack-plugin生成預(yù)覽頁面
-
作用: 將src下面的index.html復(fù)制到內(nèi)存中,且默認(rèn)的路徑是項(xiàng)目的根目錄,還會自動導(dǎo)入內(nèi)存中的bundle.js
-
使用步驟:
-
npm install html-webpack-plugin
-
修改webpack.config.js
- const HtmlWebpackPlugin = require('html-webpack-plugin') const htmlPlugin = new HtmlWebpackPlugin({template: './src/index.html', // 指定要用到的模板文件filename: 'index.html' })module.exports = {plugins: [htmlPlugin] }
-
1.2.6 自動打包相關(guān)參數(shù)
// package.json // --open 打包完成后自動打開瀏覽器 // --host 配置IP地址 // --port 配置端口 "scripts": {"dev": "webpack-dev-server --open --host 127.0.0.1 --port 8888" }1.3 通過loader打包非js模塊
在實(shí)際開發(fā)中,webpack默認(rèn)只能打包處理以 .js 后綴名結(jié)尾的模塊,其他非 .js 后綴名的模塊,webpack默認(rèn)處理不了,需要調(diào)用 loader 加載器才可以正常打包.
1.3.1 打包處理CSS文件
1.3.2 打包處理less文件
1.3.3 打包處理scss文件
1.3.4 自動添加css的兼容前綴
- npm i postcss-loader autoprefixer -D
1.3.5 打包樣式表中的圖片和字體文件
- npm i url-loader file-loader -D
其中 ? 之后的是loader的參數(shù)項(xiàng).
limit用來指定圖片的大小,單位是字節(jié)(byte),只有小于limit大小的圖片,才會被轉(zhuǎn)為base64圖片
1.3.6 打包處理js文件中的高級語法
-
babel轉(zhuǎn)換器相關(guān)的: npm i babel-loader @babel/core @babel/runtime -D
-
babel語法插件相關(guān)的: npm i @babel/preset-env @babel/plugin-transform-runtime @babel/plugin-proposal-class-properties -D
1.3.7 webpack中配置vue組件的加載器
-
npm i vue-loader vue-template-compiler -D
- // webpack.config.js const VueLoaderPlugin = require('vue-loader/lib/plugin') module.exports = {module:{rules:[{ test: /\.vue$/, loader: 'vue-loader'}]},plugins:[new VueLoaderPlugin()] }
總結(jié)
以上是生活随笔為你收集整理的webpack --- [读书笔记] webpack中常用的一些配置项的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue --- [全家桶]vue-ro
- 下一篇: threejs纹理