日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

webpack进阶--打包

發(fā)布時(shí)間:2024/8/24 编程问答 34 如意码农
生活随笔 收集整理的這篇文章主要介紹了 webpack进阶--打包 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

上一片博文主要讓大家了解下究竟webpack是干什么的,明顯它是專(zhuān)注于打包的。


gulp  和  webpack  的區(qū)別

gulp,要求我們一步步寫(xiě)task(es6編譯、css壓縮、圖片壓縮、打包...),全過(guò)程都是我們掌控的(一開(kāi)始項(xiàng)目小的時(shí)候,我們覺(jué)得靈活,但是后來(lái)項(xiàng)目復(fù)雜度上來(lái)了,我們覺(jué)得這樣寫(xiě)task也太惡心了)。

webpack,只要寫(xiě)好配置文件,就會(huì)幫我們處理好各種零散的html、css、js(這里包括它們的預(yù)編譯語(yǔ)言例如jade、sass、es6、typescript等),然后打包成一個(gè)js文件。

gulp和webpack最明顯的區(qū)別就是webpack自動(dòng)化程度更高,不用自己寫(xiě)各種各樣的稀奇古怪的task。


使用:

1.安裝

webpack和gulp一樣都要先全局安裝一次,再在項(xiàng)目安裝一次:

npm i webpack -g
npm i webpack -D

ps:全局安裝是為了能獲取本地模塊

2.配置文件

默認(rèn)配置文件名:webpack.config.js

如果想用其他名字例如:1.config 調(diào)用webpack時(shí)請(qǐng)用 webpack --config 1.config

//webpack.config.js
const path = require('path');
//一個(gè)入口對(duì)一個(gè)最終打包的js
//單入口寫(xiě)法
module.exports = {
entry: './src/script/main.js',
output: {
path: path.solve('./dist'),
filename: 'bundle.js'
}
}
-----------------------------------------------------------------------------------------------------
//多個(gè)平行依賴(lài)入口寫(xiě)法,最終會(huì)打包在一起
module.exports = {
entry: ['./src/script/main.js','./src/script/main2.js','./src/script/main3.js'],
output: {
path: path.solve('./dist'),
filename: 'js/bundle.js'
}
}
-----------------------------------------------------------------------------------------------------
//多入口寫(xiě)法,最終會(huì)打包多個(gè)文件
//[name] 這里是page1 page2
//[hash] 這個(gè)每次打包生成的一個(gè)hash(簽名)值
//[chunkhash] 這個(gè)是每個(gè)打包文件的md5 hash
module.exports = {
entry: {
page1 :'./src/script/main.js',
page2 :'./src/script/main2.js'
},
output: {
path: path.solve('./dist'),
filename: 'js/[name]-[chunkhash].js'
}
}

3.生成index.html(自動(dòng)插入打包好的js文件)

之前的文件都不能自動(dòng)將打包文件放入index.html中,所以我們要借助新的插件html-webpack-plugin(需安裝)

//webpack.config.js
const path = require('path');
const htmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: {
a:'./src/script/main.js',
b:'./src/script/main2.js'
},
output: {
path: path.solve('./dist'),
filename: 'js/bundle.js'
},
plugins:[
new htmlWebpackPlugin({
template: 'index.html', //以當(dāng)前目錄下的index.html為模板
filename: 'index-[hash].html',
inject: 'head',//默認(rèn)時(shí)body
hahaha: '自定義屬性的自定義內(nèi)容' ,//這個(gè)內(nèi)容可以在模板上用ejs語(yǔ)法調(diào)用,例如<%=htmlWebpackPlugin.options.hahaha%>
minify: { //壓縮html
removeCommet: true, //去注釋
collapseWhitespace: true //去空格
},
chunks:[a], //要入口js a
excludeChunks:[b] //不要入口js b chunks和excludeChunks隨便寫(xiě)一個(gè)就行
})
]
}

總結(jié)

以上是生活随笔為你收集整理的webpack进阶--打包的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。