WebPack配置vue多頁面的技巧
WebPack虐我千百遍,我?guī)绯鯌佟R粋€項目前臺頁面寫差不多了,webpack幾乎零配置,也算work起來了?,F(xiàn)在需要編寫后臺管理界面,另起一個單獨(dú)的項目,那是不存在的。于是網(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,其他能夠共用的還是共用,進(jìn)入正題:
修改webpack的配置文件
修改 webpack.base.conf.js
打開 ~\build\webpack.base.conf.js ,找到entry,添加多入口:
entry: { app: './src/main.js', admin: './src/admin.js' //新增 },
這樣運(yùn)行編譯的時候,每一個入口都會對應(yīng)一個chunk。
run dev配置的修改
打開 ·~\build\webpack.dev.conf.js· ,在plugins下找到 HtmlWebpackPlugin ,在其后面添加對應(yīng)的多頁,并為每個頁面添加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 ,在其后面添加對應(yīng)的多頁,并為每個頁面添加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)了,過程越復(fù)雜越容易出錯。上面webpack的配置簡單能看懂。
相關(guān)文章
vue3中$attrs的變化與inheritAttrs的使用詳解
$attrs現(xiàn)在包括class和style屬性。?也就是說在vue3中$listeners不存在了,vue2中$listeners是單獨(dú)存在的,在vue3?$attrs包括class和style屬性,?vue2中?$attrs?不包含class和style屬性,這篇文章主要介紹了vue3中$attrs的變化與inheritAttrs的使用?,需要的朋友可以參考下2022-10-10VueJs與ReactJS和AngularJS的異同點(diǎn)
這篇文章主要為大家詳細(xì)介紹了VueJs與ReactJS和AngularJS的異同點(diǎn),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12利用Vue3+Element-plus實現(xiàn)大文件分片上傳組件
在開發(fā)中如果上傳的文件過大,可以考慮分片上傳,分片就是說將文件拆分來進(jìn)行上傳,將各個文件的切片傳遞給后臺,然后后臺再進(jìn)行合并,下面這篇文章主要給大家介紹了關(guān)于利用Vue3+Element-plus實現(xiàn)大文件分片上傳組件的相關(guān)資料,需要的朋友可以參考下2023-01-01vue項目中使用Hbuilder打包app 設(shè)置沉浸式狀態(tài)欄的方法
這篇文章主要介紹了vue項目 使用Hbuilder打包app 設(shè)置沉浸式狀態(tài)欄的方法,本文通過實例代碼效果圖展示給大家介紹的非常詳細(xì),具有一定的參考借鑒價值 ,需要的朋友可以參考下2018-10-10Vue使用electron轉(zhuǎn)換項目成桌面應(yīng)用方法介紹
Electron也可以快速地將你的網(wǎng)站打包成一個原生應(yīng)用發(fā)布,下面這篇文章主要給大家介紹了關(guān)于Vue和React中快速使用Electron的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11Vue Element前端應(yīng)用開發(fā)之常規(guī)的JS處理函數(shù)
在我們使用Vue Element處理界面的時候,往往碰到需要利用JS集合處理的各種方法,如Filter、Map、reduce等方法,也可以涉及到一些對象屬性賦值等常規(guī)的處理或者遞歸的處理方法,本篇隨筆列出一些在VUE+Element 前端開發(fā)中經(jīng)常碰到的JS處理場景,供參考學(xué)習(xí)。2021-05-05組件中多個el-upload存在導(dǎo)致上傳圖片失效的問題及解決
這篇文章主要介紹了組件中多個el-upload存在導(dǎo)致上傳圖片失效的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03