前端项目如何添加配置文件
最近碰到一个需求,公司两个独立的项目,其中A项目需上报埋点数据给B项目,因为两个项目完全独立,部署的服务器不一样,参与的开发人员,测试也都不一样,其中接收上报数据的路径也可能经常发生变化,为避免这些无伤大雅的修改都要走回开发人员手中,故将一些参数作为配置项,以便测试或实施的同事按情况修改。
前端项目采用Vue框架,由Webpack打包,此为背景。
因为项目被打包后,代码结构难以区分,也不支持实时修改,为添加一个可以build后可实时修改生效的配置文件,在此,我用到了generate-asset-webpack-plugin插件。
下面是具体工程:
(1)安装generate-asset-webpack-plugin插件
npm install --save-dev generate-asset-webpack-plugin
(2)在webpack的配置文件webpack.prod.conf.js中引用该插件
var GenerateAssetPlugin = require('generate-asset-webpack-plugin');
(3)在项目根目录创建serverConfig.json文件,内容为需要添加的配置项,比如我的是:
因为json文件不支持注释,故前两项是注释,以下划线区别(这也是我觉得用json文件作为配置项很不合适的一方面啊!!!)
{"_isReport": "埋点开关,true为开,false为关","_reportPath": "埋点上报路径","isReport": true,"reportPath": "http://192.168.2.103:8092",
}
(4)引入添加的serverConfig.json文件
const serverConfig = require('../serverConfig.json')
(5)添加打包时写入配置文件的代码
const createJson = function(compilation) {return JSON.stringify(serverConfig);
};
(6)添加打包时输出配置文件的代码
var webpackConfig = {plugins: [new GenerateAssetPlugin({filename: 'serverConfig.json', // build后生成的配置文件名字及路径设置fn: (compilation, cb) => {cb(null, createJson(compilation));}})]// other webpack config ...}
(7)在main.js中添加读取build之后的代码
Vue.prototype.$axios.get('serverConfig.json').then((result)=>{Vue.prototype.config = result; //设置成Vue的全局属性}).catch((error)=>{console.log(error)})
(8)在代码中打印配置项
console.log(this.config.reportPath)
(9)npm run build,打包后的目录结构如下
注意项:
有可能因为你的其他插件配置的原因,最后生成的serverConfig.json不一定在dist目录下,而是在static目录下,也没有关系的,一样可以修改后生效,如果觉得不方便看的话,可以在插件配置filename那里去更改路径。
前端项目如何添加配置文件相关推荐
- [项目]Vue+ElementUi疫情监测平台纯前端项目(一)添加数据
疫情防控平台搭建 项目展示 先把git贴上吧 喜欢的可以拉下来研究研究 https://gitee.com/shang_dynasty/yiqing.git 一个登录框 没什么好说的 分页 体温处于& ...
- React、Vue等前端项目彻底卸载ServiceWorker,亲测有效
前端项目遇到的问题 每次前端项目在本地开发没事,一旦发布到线上就需要用户手动清理浏览器缓存,让用户总是吐槽,百度搜了很多文章都没找到解决方案,最终在钉钉源码中找到了解决方案.话不多说,直接上图: 1. ...
- Vue项目搭建常用配置文件!
1.前端跨域解决方案 request.js用来请求数据,封装的代码如下: request.js :在vue/src/utils 之下 ~ import axios from 'axios'const ...
- 如何为前端项目一键自动添加eslint和prettier的支持
本文来自读者@那个曾经的少年回来了 写的源码共读35期笔记文章,授权投稿,写的真好. 本文参加了由公众号@若川视野 发起的每周源码共读活动,点此加我微信 ruochuan12 了解详情一起参与. 本文 ...
- gulp + webpack 构建多页面前端项目
修改增加了demo地址 gulp-webpack-demo 之前在使用gulp和webpack对项目进行构建的时候遇到了一些问题,最终算是搭建了一套比较完整的解决方案,接下来这篇文章以一个实际项目为例 ...
- 记前端项目首屏加载优化(网络篇)
继之前的一篇<记前端项目首屏加载优化(打包篇)>之后,这次来讲一讲我的首屏加载在网络方面的优化?. 写在前面 资源加载是一个网站的展示在用户浏览器的必经之路,资源的请求次数和响应时间决定了 ...
- gulp + webpack 构建多页面前端项目 1
修改增加了demo地址 gulp-webpack-demo 之前在使用gulp和webpack对项目进行构建的时候遇到了一些问题,最终算是搭建了一套比较完整的解决方案,接下来这篇文章以一个实际项目为例 ...
- git前端工程实现ci_大前端项目代码重用,也许lerna是最好的选择
我前段时间参与了一个react为主的大前端项目,覆盖Web.Android.Ios三个平台.由于整个业务逻辑侧重在手机端,且Web端也是到了项目中期才开始启动,我在搭底层框架时就没有考虑用类似reac ...
- js 读取json文件_JavaScript 项目中常见配置文件介绍
原文地址:https://github.com/whinc/blog/issues/14 本文介绍一些前端项目的通用配置及相关资源,以便你了解项目中常见配置的含义以及配置方式. .gitignore ...
- 使用各种姿势舒服的部署微前端项目(上:打包与上传)
微前端作为解决巨石应用模块化和降低技术框架变动风险的神器,我觉得是当下前端发展的一大方向,可以在未来5-10年内保持生命力. 作者从2019年12月第一次使用qiankun框架落地微服务以来已经过去了 ...
最新文章
- 相关子查询中exists后select 加数字的理解
- 如何下载和离线安装Chrome的CRX扩展文件包
- Keepalived全局配置
- UItableView的一些特殊点击效果
- 两列布局 html5,CSS两列布局的N种实现
- C++_函数_函数的占位参数_函数重载---C++语言工作笔记034
- linux相关操作命令
- 如何在Android应用里对HTTP请求头部添加适当的User-Agent字段
- [leetcode] (周赛)869. 重新排序得到 2 的幂
- jade选峰之后怎么去掉_jade使用教程
- Web前端:2022年7大React组件库
- [Essay]看《Re:从零开始的异世界生活》的一些感想
- Python基础语法学习6
- 《软件工程实践》第五次作业-WordCount进阶需求 (结对第二次)
- HTML + CSS + JS 10 分钟实现一个吃豆豆小游戏(给女朋友玩)
- 关于数据库表结构的设计
- lc用U盘更新固件_普通U盘和固态U盘相差多少?用下aigo固态U盘就知道了
- 基于游戏付费数据,对战数据分析
- 商创网络带你看电商:租房免押金,你的芝麻信用多少分了?
- python tcp黏包和struct模块解决方法,大文件传输方法及MD5校验
热门文章
- 数据预处理_缺失值处理
- CSS 绘制太阳系行星运行轨迹
- 第三阶段应用层——1.9 数码相册—在LCD上显示BMP图片
- (已解决)最近打开浏览器总是先打开 http://hao934.com/然后 跳转到 hao123 用各种修复无效
- 笔记本桌面计算机图标不显示不出来,电脑桌面一片空白不显示图标的处理方法...
- VIM编辑器配置文件修改
- 京东金融App崩溃治理实践
- 焦距相关的基本概念及焦距对摄影效果的影响
- 云计算未来的5个发展趋势分析
- 大数据用户画像方法与实践(干货 转帖)