需求:根据不同的部署环境需求打包不同的基础路径,需要配置的地方有很多,每个不同路径都要重新修改一边,太麻烦了!
效果:通过执行的命令 npm run build routerbase=wap 修改路由基础路径 /wap/
build 指令如下:
"scripts": {
"build": "node build/build.js",
},
开始配置
1、获取命令行输入参数,并且配置环境变量 NODE_ENV_RBase
创建 build/routerbase.js
/ process.argv 获取命令行命令数组,['node.exe路径','build.js路径', 'routerbase=wap']
module.exports = function () {
process.argv.forEach((val, index) => {
if (val.indexOf('routerbase=') === 0) {
const routerbase = val.split('=')[1]
if (routerbase) {
process.env.NODE_ENV_RBase = `/${routerbase}/`
} else {
process.env.NODE_ENV_RBase = '/'
}
console.log(`> router base "${process.env.NODE_ENV_RBase}"`,)
}
});
}
2、在 build/build.js 引用 routerbase.js
// 引入并执行,放在文件顶部优先引入
require('./routerbase.js')()
3、环境变量 NODE_ENV_RBase 的配置
Router base 的基础路径
// src/router/index.js const createRouter = () => new Router({ base: process.env.NODE_ENV_RBase || '/', mode: "history", scrollBehavior: () => ({ y: 0 }), routes })
打包时的基础路径 config.build.assetsPublicPath
// config/index.js
build: {
assetsPublicPath: process.env.NODE_ENV_RBase
}
index.html 页面引入的放在 static 的文件基础路径
index.html 的路径配置需要通过 htmlWebpackPlugin 的模板配置
1、定义一个变量 rootPath: config.build.assetsPublicPath,
2、在 index.html 通过模板语法引用 <%=htmlWebpackPlugin.options.rootPath%> 替换之前的 /wap/
// build/webpack.prod.conf.js
new HtmlWebpackPlugin({
...
rootPath: config.build.assetsPublicPath,
...
}),
... <script type="text/javascript" src="<%=htmlWebpackPlugin.options.rootPath%>static/js/xxx.js"></script> ...
4、配置完成
执行 npm run build routerbase=wap 即可给打包的项目加上 /wap/ 基础路径
Vue-Router用createRouter创建路由去除#
dedecms安装到子目录,如何把uploads默认在根目录
上面是“vue项目通过打包命令参数,配置子目录”的全面内容,想了解更多关于 vuejs 内容,请继续关注web建站教程。
当前网址:https://ipkd.cn/webs_2134.html
workflows工作流
一棵白色心形流苏树comfyui工作流
一只由粉色水晶与羽毛组成的巨型高跟鞋
一个精心制作的微型赛车场ComfyUI工作流
红伞伞蓝杆杆云南蘑菇群ComfyUI工作流
一只黑色的小猫在童话森林里嗅着一朵发光的外星花
王家卫电视剧繁花海报效果comfyui工作流
基础扩图comfyui工作流
一桌精致的美食,桌上几杯白葡萄酒
猜你喜欢
声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

javascript如何利用draggable实现一个拖拽效果
利用css3做一个动态loading效果
纯CSS饼图效果
barcode条形码/qrcode二维码兼容所有浏览器(含ie6/ie7/ie8)
css3+js菜单点击动态效果
会议人员60s签到倒计时插件
css3画弹珠,可以滚动!
css3做一个风雨雷电天气动态图标










