博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
接口环境很多?静态资源要放cdn?不用修改代码,用webpack就可以(vue)
阅读量:6305 次
发布时间:2019-06-22

本文共 1710 字,大约阅读时间需要 5 分钟。

multi-hostname-vue-cli

针对解决的问题

  1. 接口环境很多,有测试服,有qa,有正式等等,每次都要修改代码?no!
  2. 静态资源可能要存到cdn中,这也要修改代码吗?no!

Start up

clone && npm install

修改配置文件 /config/host-config.js,只需要修改 ENV_LIST

/** 环境列表,第一个环境为默认环境* envName: 指明现在使用的环境* dirName: 打包的路径,只在build的时候有用* apiHostname: 这个环境下面的api 请求的域名* assetHostname: 静态资源存放的域名,未指定(undefined)则为相对路径* */const ENV_LIST = [  {    envName: 'test',    dirName: 'test',    apiHostname: 'http://test_apiHostname',    assetHostname: 'http://localhost:3004'  },  {    envName: 'pro',    dirName: 'pro',    apiHostname: 'http://product_apiHostname',    assetHostname:'http://product_assetHostname'  },  {    envName: 'qa',    dirName: 'qa',    apiHostname: 'http://product_apiHostname',    assetHostname:'http://product_assetHostname'  }]

在文件中使用hostname

const HOST_NAME = process.env.HOST_NAMEexport {HOST_NAME}

dev 开发调试

npm run dev [envName]

  • envName 为上面配置的envName,对应的process.env.HOST_NAME的值就是 对应的ENV_LIST中的hostname
  • 不指定envName默认选择ENV_LIST的第一个值
  • envName 不在ENV_LIST 中的时候默认选择 ENV_LIST的第一个值
# 例子:# 在qa的环境中调试,process.env.HOST_NAME === 'http://qa_hostname'npm run dev qa

build 打包

npm run build [envName] //打指定环境的包

npm run build-all // 全部重新打包

  • 打包的envName与 dev类似
  • 执行打包命令会在dist文件夹中生成对应的路径
  • html和css中使用过的静态资源的引用路径会指定到设定的域名中
dist    |-test    |-qa    |-pro

对比vue-cli生成的环境修改的地方

新增 /config/host-conf.js

修改 /config/index.js

  • 修改build的路径
  • 修改build的静态资源的路径

修改 `/build/webpack.base.conf.js

  • 添加 用户客户端的环境变量
// 通过webpack传入客户端中  plugins: [    new webpack.DefinePlugin({      'process.env.HOST_NAME': '\"' + process.env.HOST_NAME + '\"'    })  ]

入口build/build.jsbuild/dev-server.js设置环境变量

// 设置域名的环境变量process.env.HOST_ENV = process.argv[2]

新增 build/build-all.js

修改package.json的script, 增加Build-all

"build-all": "node build/build-all.js"

转载地址:http://hoixa.baihongyu.com/

你可能感兴趣的文章
javascript 的call()与apply()的区别
查看>>
zabbix通过SNMPv2监控DELL服务器的硬件
查看>>
CentOS 6与CentOS 7网络管理
查看>>
atime、mtime、ctime讲解
查看>>
我的友情链接
查看>>
保护眼睛——设置WIN7和XP 窗体、Chrome、IE网页背景颜色
查看>>
Linux: command not found
查看>>
女程序员的诗与远方
查看>>
highcharts java饼图
查看>>
Windows Server 2016-PS筛选导出用户邮箱属性包含某字段列表
查看>>
linux在telnet情况下root登录提示login incorrect
查看>>
Mobile first! Wijmo 5 + Ionic Framework之:Hello World!
查看>>
企业级WEB的负载均衡高可用之LVS+Keepalived(1)
查看>>
哈尔滨旅游名胜——防洪纪念塔
查看>>
BTrace简单实用教程
查看>>
目前关注的技术以及以后准备关注的技术
查看>>
Java反编译工具
查看>>
Eclipse自动提示
查看>>
Visual Studio 2005三个版本有什么区别
查看>>
JPA生成数据表不能用mysql关键字
查看>>