vue项目打包多页面跳转(vue3多页面运行与打包)

首页教程更新时间:2023-06-23 01:19:12

前言

现实应用环境,会有使用vue开发多页面环境的需求,这些页面拥有共同的依赖,但是却又都是独立的,为了实现vue的多页面打包,可以使用webpack,同时又因为vue-cli自带了webpack,所以我们还可以采用vue-cli本身的配置文件进行多页打包操作。

VUE3多页面打包

方式一:webpack配置

webpack安装参考:[]。

直接在package.json同级目录下创建webpack.config.js(创建一个webpack的配置文件即可),然后在配置文件内输入内容:

/** *配置 * */ /*path处理模块,可有可无,主要是为了方便路径链接,因为在配置文件内对于参数而言只接受绝对路径,利用path.resovle(__dirname, 相对路径)可以自动生成绝对路径,此模块为webpack自带*/ let path = require('path') /*vue-loader,vue加载插件,使用npm install vue-loader直接安装即可 *同时对于vue3而言需要单独安装@vue/compiler-sfc,vue2的话是vue-compiler */ let vueLoader = require('vue-loader') /*html-webpack-plugin,模版处理插件,如果存在多个html模版就需要安装 *直接用npm install html-webpack-plugin */ let htmlWebPackPlugin = require('html-webpack-plugin') /** *compression-webpack-plugin,这是一个可选插件,目的是为了对打包后的文件进行压缩,因为打包后会形成一个大的js文件,文件越大网页打开速度越慢。 */ let compressionWebpackPlugin = require('compression-webpack-plugin') module.exports = { /*打包入口,多入口就是从这里来的,当打包时,会去找到每一个入口文件, 并根据这个文件依赖去打包,每一个入口写一个key-value对*/ entry: { /*key-value格式 key就是标识名称,之所以写成 "/js/index/index" 格式是为了在打包时将文件输出到对应目录, 默认情况下,文件只会输出到output所指定的目录下,之后便没有区分,这里用“/”分割就是利用输出路径时小漏洞形成目录*/ /*value是要打包入口的地址,利用path.resolve处理绝对路径问题*/ '/js/index/index': path.resolve(__dirname, './src/entry/index.js'), '/js/index2/index2': path.resolve(__dirname, './src/entry/index2.js') }, /*文件输出目录,只能有一个,[官方要求](https://www.webpackjs.com/concepts/output/)*/ output: { /*输出的入口文件的名称,【name】就是刚才上面我们指定的key值,这个值不能通过外部变量或数组动态修改*/ filename: '[name].js', /*输出目录,也需要指定绝对路径*/ path: path.resolve(__dirname, './dist') }, /*插件配置与加载*/ plugins: [ /*加载vue文件打包插件*/ new vueLoader.VueLoaderPlugin, /*html模版打包插件,有几个入口就要用几个,书写顺序与上方入口顺序一致, 如果只有一个,那么所有入口都会通过这一个模版打包*/ new htmlWebPackPlugin({ template: path.resolve(__dirname, './public/html/index.html'), filename: 'index.html' }), new htmlWebPackPlugin({ template: path.resolve(__dirname, './public/html/index2.html'), filename: 'xxjszx.html' }), /*加载压缩插件,将test中查找到的文件类型全部压缩,test的值对应的是一个正则表达式*/ new compressionWebpackPlugin({ test: /\.js$|\.html$|\.css$|\.jpg$|\.png$/, threshold: 100000, deleteOriginalAssets: false }) ], module:{ /*文件处理规则*/ rules: [ { /*css处理规则,直接用css-loader插件默认加载,css-loader插件也需要使用npm安装*/ test: /\.css$/, use: ['style-loader', 'css-loader'] }, { /*vue文件加载规则*/ test: /\.vue$/, use: ['vue-loader'] }, { /*图片文件处理规则,使用url-loader插件改写文件名并放到指定位置*/ test: /\.(jp?g|png|svg|ico)$/, use: 'url-loader?limit=2048&name=./img/[hash:8].[name].[ext]' } ] } }

方式二:vue-cli配置

vue-cli目前已不提供vue.config.js配置文件,但是我们可以手动在package.json同级目录创建一个,创建成功后此文件将作为优先调用对象,结构与内容同webpack类似(其实就是内置的webpack配置),可参考官网配置解释::

module.exports = { /*pages指定入口,同样是key-value对的形式,只不过是将配置集成到了一起*/ pages: { /*名称*/ xxjszx: { /*入口,同上面的entry*/ entry: 'src/entry/xxjszx.js', /*模版,同上面的html-webpack-plugin插件*/ template: 'public/html/xxjszx.html', /*输出后的文件名称*/ filename: 'xxjszx.html', }, index: { entry: 'src/entry/index.js', template: 'public/html/index.html', /*这里是html输出到的文件地址,也可以利用/斜杠表示目录,例如index/index.html就代表创建index目录并把index.html放到目录下*/ filename: 'index.html', } } }

vue3多页面直接运行

使用vue.config.js配置好后,直接使用npm run dev命令即可,对应vue的vue-cli-service serve,运行可根据pages定义的key值进行路由调用页面,key值为index那么调用格式就是/index,默认页面是index路由对应页面。如果采用webpack打包是无法直接运行多页面的,需要在打包后部署到服务器上。

,
图文教程
相关文章
热门专题
推荐软件
奇热小说
奇热小说
下载
QQ2019手机版
QQ2019手机版
下载
王者荣耀
王者荣耀
下载
百度浏览器迷你版
百度浏览器迷你版
下载
2345浏览器手机版
2345浏览器手机版
下载
网易邮箱
网易邮箱
下载
爱奇艺
爱奇艺
下载
网易云音乐
网易云音乐
下载
WPSOffice
WPSOffice
下载
优酷
优酷
下载
谷歌浏览器(Chrome)
谷歌浏览器(Chrome)
下载
迅雷看看播放器
迅雷看看播放器
下载
UC浏览器
UC浏览器
下载
QQ音乐
QQ音乐
下载
阿里旺旺买家版v9.12.10C官方版
阿里旺旺买家版v9.12.10C官方版
下载
360安全卫士v12.1官方版
360安全卫士v12.1官方版
下载
猜你喜欢
ELLEplusiOS
ELLEplusiOS
下载
眼镜蛇凯空手道小子传奇续集五项修改器
眼镜蛇凯空手道小子传奇续集五项修改器
下载
捕虫高手Mac版V1.0
捕虫高手Mac版V1.0
下载
歌者盟电脑版
歌者盟电脑版
下载
星缘测试服
星缘测试服
下载
聚农网
聚农网
下载
YY备份
YY备份
下载
融e通app
融e通app
下载
超级玛格奥
超级玛格奥
下载
迪龙游戏手柄驱动v6.0.0.619官方版
迪龙游戏手柄驱动v6.0.0.619官方版
下载
AddressBookAid2Mac版V3.2.4
AddressBookAid2Mac版V3.2.4
下载
挺进地牢六项修改器v2.1.3
挺进地牢六项修改器v2.1.3
下载
健康云耳机
健康云耳机
下载
经川网校电脑版
经川网校电脑版
下载
空中大师
空中大师
下载
山路皮卡驾驶
山路皮卡驾驶
下载