WebPack配置vue多頁面的技巧
WebPack虐我千百遍,我?guī)绯鯌?。一個項目前臺頁面寫差不多了,webpack幾乎零配置,也算work起來了?,F(xiàn)在需要編寫后臺管理界面,另起一個單獨的項目,那是不存在的。于是網(wǎng)上了搜了大把大把的文章,很多都是修改了項目的結(jié)構(gòu),討厭,vue-cli搞的那一套,干嘛要修改來修改去的。像我這種前端小萌新,webpack的配置改著就把前臺部分run不起來了。。。
于是就有了這個筆記:
先看看項目的結(jié)構(gòu):
├── build
├── config
├── src
│ ├── api
│ ├── assets
│ ├── components
│ ├── pages
│ ├── router
│ ├── utils
│ ├── vuex
│ ├── App.vue
│ ├── main.js
│ ├── admin.js
│ └── Admin.vue
├── static
│ └── images
├── README.md
├── admin.html
├── index.html
├── package.json
└── yarn.lock
我相信這樣的結(jié)構(gòu)大家一定很熟悉,除了 admin.html 和src文件夾下面的 Admin.vue 、 admin.js ,還有一些api,pages,vuex等文件夾,就是最常見的一個vue-cli初始化的項目結(jié)構(gòu)。
我想要就是新增一個后臺管理界面的入口admin.html,其他能夠共用的還是共用,進入正題:
修改webpack的配置文件
修改 webpack.base.conf.js
打開 ~\build\webpack.base.conf.js ,找到entry,添加多入口:
entry: {
app: './src/main.js',
admin: './src/admin.js' //新增
},
這樣運行編譯的時候,每一個入口都會對應一個chunk。
run dev配置的修改
打開 ·~\build\webpack.dev.conf.js· ,在plugins下找到 HtmlWebpackPlugin ,在其后面添加對應的多頁,并為每個頁面添加Chunk配置如下:
new HtmlWebpackPlugin({
filename: 'index.html', //生成的html
template: 'index.html', //來源html
inject: true,
chunks: ['app']//需要引入的Chunk,不配置就會引入所有頁面的資源
}),
new HtmlWebpackPlugin({
filename: 'admin.html',
template: 'admin.html',
inject: true,
chunks: ['admin']
}),
run build配置的修改
修改config/index.js
打開 ~\config\index.js ,找到build下的 index: path.resolve(__dirname, '../dist/index.html') ,在其后添加多頁:
admin: path.resolve(__dirname, '../dist/admin.html'),
修改 webpack.prod.conf.js
打開 ~\build\webpack.prod.conf.js ,在plugins下找到 HtmlWebpackPlugin ,在其后面添加對應的多頁,并為每個頁面添加Chunk配置:
new HtmlWebpackPlugin({
filename: config.build.index,
template: 'index.html',
inject: true,
minify: {
removeComments: true,
collapseWhitespace: true,
removeAttributeQuotes: true
// more options:
// https://github.com/kangax/html-minifier#options-quick-reference
},
// necessary to consistently work with multiple chunks via CommonsChunkPlugin
chunksSortMode: 'dependency',
chunks: ['manifest', 'vendor', 'app']
}),
new HtmlWebpackPlugin({
filename: config.build.admin,
template: 'admin.html',
inject: true,
minify: {
removeComments: true,
collapseWhitespace: true,
removeAttributeQuotes: true
},
chunksSortMode: 'dependency',
chunks: ['manifest', 'vendor', 'admin']
}),
End
恩,沒有了,就不修改什么項目結(jié)構(gòu)了,過程越復雜越容易出錯。上面webpack的配置簡單能看懂。
相關(guān)文章
vue3中$attrs的變化與inheritAttrs的使用詳解
$attrs現(xiàn)在包括class和style屬性。?也就是說在vue3中$listeners不存在了,vue2中$listeners是單獨存在的,在vue3?$attrs包括class和style屬性,?vue2中?$attrs?不包含class和style屬性,這篇文章主要介紹了vue3中$attrs的變化與inheritAttrs的使用?,需要的朋友可以參考下2022-10-10
利用Vue3+Element-plus實現(xiàn)大文件分片上傳組件
在開發(fā)中如果上傳的文件過大,可以考慮分片上傳,分片就是說將文件拆分來進行上傳,將各個文件的切片傳遞給后臺,然后后臺再進行合并,下面這篇文章主要給大家介紹了關(guān)于利用Vue3+Element-plus實現(xiàn)大文件分片上傳組件的相關(guān)資料,需要的朋友可以參考下2023-01-01
vue項目中使用Hbuilder打包app 設置沉浸式狀態(tài)欄的方法
這篇文章主要介紹了vue項目 使用Hbuilder打包app 設置沉浸式狀態(tài)欄的方法,本文通過實例代碼效果圖展示給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下2018-10-10
Vue使用electron轉(zhuǎn)換項目成桌面應用方法介紹
Electron也可以快速地將你的網(wǎng)站打包成一個原生應用發(fā)布,下面這篇文章主要給大家介紹了關(guān)于Vue和React中快速使用Electron的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2022-11-11
Vue Element前端應用開發(fā)之常規(guī)的JS處理函數(shù)
在我們使用Vue Element處理界面的時候,往往碰到需要利用JS集合處理的各種方法,如Filter、Map、reduce等方法,也可以涉及到一些對象屬性賦值等常規(guī)的處理或者遞歸的處理方法,本篇隨筆列出一些在VUE+Element 前端開發(fā)中經(jīng)常碰到的JS處理場景,供參考學習。2021-05-05
組件中多個el-upload存在導致上傳圖片失效的問題及解決
這篇文章主要介紹了組件中多個el-upload存在導致上傳圖片失效的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03

