webpack自動(dòng)化打包方式詳解
webpack自動(dòng)化打包
首先下載包
npm i webpack-dev-server -D
配置
webpack.config.js
const path = require('path')//nodejs核心模塊,專(zhuān)門(mén)用來(lái)處理路徑問(wèn)題
const ESLintPlugin = require('eslint-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
//入口
entry: './src/main.js',//相對(duì)路徑
//出口
output: {
//__dirname nodejs變量,代表當(dāng)前文件夾目錄,當(dāng)前文件俠士config.js 目錄就是最外層的demo
path: path.resolve(__dirname, 'dist'),//絕對(duì)路徑
//文件名
filename: './static/index.js',
clean: true
},
//加載器
module: {
//規(guī)則
// loader的配置
rules: [
{
test: /\.css$/i,
use: ["style-loader", "css-loader"],
},
{
test: /\.(png|jpe?g|gif|webp|svg)$/,
type: 'asset',//設(shè)置資源
generator: {
filename: "static/[hash][ext][query]",//打包文件名
},
parser: {
dataUrlCondition: {
// 小于10kb會(huì)轉(zhuǎn)換base64,優(yōu)點(diǎn)減少請(qǐng)求數(shù)量,缺點(diǎn)體積變大
maxSize: 10 * 1024
}
}
},
{
test: /\.js$/,
exclude: /node_modules/,//排除node_modules不處理
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
}
]
},
//插件
plugins: [
new ESLintPlugin({
context: path.resolve(__dirname, "src")
}),
new HtmlWebpackPlugin({
//模板,以public/index.html文件創(chuàng)建新的html文件
//心得html結(jié)構(gòu)跟原來(lái)一樣并且自動(dòng)引入打包輸出的資源
template:path.resolve(__dirname,"public/index.html")
})],
// 開(kāi)發(fā)服務(wù)器
devServer:{
host:"localhost",//啟動(dòng)服務(wù)器域名
port:'3000',//端口號(hào)
open:true,//是否自動(dòng)打開(kāi)瀏覽器
},
//模式
mode: "development"
}
主要就是配置devServer這一塊
相當(dāng)于熱啟動(dòng)
此時(shí)的啟動(dòng)命令是npx webpack server這個(gè)是實(shí)時(shí)啟動(dòng)命令, 而不是之前得npx webpack這個(gè)是打包命令
重點(diǎn)生產(chǎn)模式與開(kāi)發(fā)模式配置
首先在最外面建個(gè)config文件夾
里面放兩套配置文件 webpack.dev.js 開(kāi)發(fā)環(huán)境配置 webpack.prod.js生產(chǎn)環(huán)境配置
注意幾點(diǎn)首先
開(kāi)發(fā)模式
入口是絕對(duì)路徑不需要修改,其余路徑都是相對(duì)路徑需要回退到根目錄下因?yàn)殚_(kāi)發(fā)模式是不執(zhí)行打包的所以輸出路徑可以填undefined,包括下面的clean也可以不填生產(chǎn)模式
入口是絕對(duì)路徑不需要修改,其余路徑都是相對(duì)路徑需要回退到根目錄下生產(chǎn)模式是不需要內(nèi)置瀏覽器啟動(dòng)的,也是可以注釋的,模式記得改為production
開(kāi)發(fā)

生產(chǎn)

然后命令太長(zhǎng)這時(shí)候我們可以修改node啟動(dòng)命令

"scripts": {
"start":"npm run dev",
"dev":"webpack serve --config ./config/webpack.dev.js",
"build":"webpack --config ./config/webpack.prod.js"
},公司啟動(dòng)命令有興趣的朋友可以了解下,大概意思就是做了一個(gè)最大內(nèi)存的限制防止文件過(guò)大打包出現(xiàn)問(wèn)題

最后指令生成這個(gè)東西理解不是很深 ,有大佬了解也可以評(píng)論區(qū)討論
到此這篇關(guān)于webpack自動(dòng)化打包的文章就介紹到這了,更多相關(guān)webpack自動(dòng)化打包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
當(dāng)處理JavaScript字符串時(shí),有許多有趣的技巧可以提高你的編碼效率,這篇文章將介紹一些有關(guān)JavaScript字符串的技巧,讓你在字符串操作方面更加?jì)故?/div> 2023-10-10
基于cornerstone.js的dicom醫(yī)學(xué)影像查看瀏覽功能
這篇文章主要介紹了基于cornerstone.js的dicom醫(yī)學(xué)影像查看瀏覽功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
使用Firebug對(duì)js進(jìn)行斷點(diǎn)調(diào)試的圖文方法
使用Firebug調(diào)試JavaScript非常方便。因?yàn)閖s的錯(cuò)誤不容易查找,用這個(gè)就方便多了。2011-04-04
JS jQuery使用正則表達(dá)式去空字符的簡(jiǎn)單實(shí)現(xiàn)代碼
本文給大家分享使用正則表達(dá)式去空字符的簡(jiǎn)單實(shí)現(xiàn)方法,需要的朋友參考下2017-05-05
js內(nèi)存泄漏場(chǎng)景、如何監(jiān)控及分析詳解
js內(nèi)存泄漏的含義就是當(dāng)已經(jīng)不需要某塊內(nèi)存時(shí)這塊內(nèi)存還存在著,垃圾回收機(jī)制就是間歇的不定期的尋找到不再使用的變量,并釋放掉它們所指向的內(nèi)存,這篇文章主要給大家介紹了關(guān)于js內(nèi)存泄漏場(chǎng)景、如何監(jiān)控及分析的相關(guān)資料,需要的朋友可以參考下2021-11-11
微信小程序使用第三方庫(kù)Immutable.js實(shí)例詳解
Immutable 是 Facebook 開(kāi)發(fā)的不可變數(shù)據(jù)集合。不可變數(shù)據(jù)一旦創(chuàng)建就不能被修改,是的應(yīng)用開(kāi)發(fā)更簡(jiǎn)單,允許使用函數(shù)式編程技術(shù),比如惰性評(píng)估。微信小程序無(wú)法直接使用Immutable.js,下面就來(lái)說(shuō)說(shuō)微信小程序如何使用第三方庫(kù)Immutable.js。2016-09-09
JavaScript enum枚舉類(lèi)型定義及使用方法
這篇文章主要介紹了JavaScript enum枚舉類(lèi)型定義及使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05最新評(píng)論

