vue項目配置多入口

有時候在一個vue項目需要多個入口,解決這個問題的方法有兩種:
方法一:
在main.js的入口文件中根據url的後綴名稱進行判斷然後進行頁面的跳轉
localhost:8080?startPage=index
根據startPage的值進行判斷
方法二:
給vue項目配置多個入口文件,通過訪問的地址的不同進行頁面的跳轉
具體操作爲:
在pages文件夾下新建index和admin、unqualified三個文件夾,然後將最外層的index.html和src下的main.js、App.vue、router文件夾移到index文件夾下,然後複製一份到admin和unqualified文件夾中。爲了以便區分,將admin文件夾下的index.html改名成admin.html,App.vue改名Admin.vue(刪除或更改其中的img標籤的src路徑,Admin.vue中的img標籤也做同樣處理),unqualified文件下的index.html改爲unqualified.html,App.vue改名Unqualified.vue,且不要忘了把這兩文件中id爲app的div對應改名爲admin、unqualified。
對admin文件夾下的main.js文件做一些改造(index文件夾下的main.js中 router的導入也需要修改下路徑),如下所示:

entry: {
	// app: './src/main.js',
	index: path.resolve(__dirname, '../dist/index.html'),
	admin: path.resolve(__dirname,'../src/pages/admin/main.js'),
	unquatified: path.resolve(__dirname, '../dist/unqualified.html'),
},

打開webpack.dev.conf.js文件,修改配置如下:

new HtmlWebpackPlugin({
	filename: 'index.html',
	template: './src/pages/index/index.html',
	inject: true,
	chunks:['app'],
	excludeChunks:['admin','unqualified'] // 需排除的代碼塊
}),
new HtmlWebpackPlugin({
	filename: 'unqualified.html',
	template: './src/pages/unqualified/unqualified.html',
	inject: true,
	chunks:['unqualified'],
	excludeChunks:['app','admin'] // 需排除的代碼塊
}),
new HtmlWebpackPlugin({
	filename: 'admin.html',
	template: './src/pages/admin/admin.html',
	inject: true,
	chunks:['admin'],
	excludeChunks:['app','unqualified'] // 需排除的代碼塊
}),

打開webpack.prod.conf.js文件夾,修改如下:

new HtmlWebpackPlugin({
	filename: config.build.index,
	template: './src/pages/index/index.html',
	inject: true,
	minify: {
		removeComments: true,
		collapseWhitespace: true,
		removeAttributeQuotes: true
	},
	// necessary to consistently work with multiple chunks via 	CommonsChunkPlugin
	chunksSortMode: 'dependency',
	chunks:['manifest','vendor','app'], // 打包時排除掉的代碼塊
}),
new HtmlWebpackPlugin({
	filename: config.build.unqualified,
	template: './src/pages/unqualified/unqualified.html',
	inject: true,
	minify: {
		removeComments: true,
		collapseWhitespace: true,
		removeAttributeQuotes: true
	},
	chunksSortMode: 'dependency',
	chunks:['manifest','vendor','unqualified'],
	excludeChunks: ['app'] // 打包時排除掉的代碼塊
}),
new HtmlWebpackPlugin({
	filename: config.build.admin,
	template: './src/pages/admin/admin.html',
	inject: true,
	minify: {
		removeComments: true,
		collapseWhitespace: true,
		removeAttributeQuotes: true
	},
	chunksSortMode: 'dependency',
	chunks:['manifest','vendor','admin'],
	excludeChunks: ['app'] // 打包時排除掉的代碼塊
}),

在config文件夾下index.js內增加以下變量:

unquatified: path.resolve(__dirname, '../dist/unqualified.html'),
admin: path.resolve(__dirname, '../dist/admin.html'),

在webpack.prod.conf.js註釋掉以下代碼:

// new webpack.optimize.CommonsChunkPlugin({
//   name: 'app',
//   async: 'vendor-async',
//   children: true,
//   minChunks: 3
// }),

index文件下的訪問路徑是:
http://localhost:8080/index.html#/
或者
http://localhost:8080/#/

admin文件夾下的訪問路徑:
http://localhost:8080/admin.html#/

unqualified文件下的訪問路徑:
http://localhost:8080/unqualified.html#/

參考項目下載地址:
https://download.csdn.net/download/zuoyiran520081/11846655

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章