Vue项目针对测试、生产环境打包项目

本文介绍了如何在Vue项目中针对开发、测试、生产环境进行区分构建,详细讲解了修改config目录下的env文件、build.js以及其他相关文件,以实现不同环境下的API地址自动切换,避免手动干预。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要

npm run build作为vue项目的包构建指令在用vue-cli初始化项目时默认构建一个生产环境的包,但在实际项目的开发和部署中我们不仅仅只是开发环境生产环境,介于两者之间的测试环境也是不可忽略的一部分。本文将对vue项目针对开发、测试、生产环境进行包的区分构建进行一些自己的讲述,若描述、理解有误欢迎指正。

新的改变

在刚接触vue时对包构建的过程没有过多的去关注,包的构建时依赖npm run build从测试环境贯穿到生产环境,接口API的配置则是在static中新建了一个config.js

// 将api地址作为添加到window对象下
window.config = {
   
  api: {
   
    apiUrl: 'https://fool.com/wapapi',
    Infversion: '1.0'
  }
}

完全不区分测试和生产环境,那么接口API地址是如何在测试和生产环境之间变更的呢?手动修改?No!肯定不是。这得感谢我强哥 @hknaruto在Jenkins自动部署时用脚本动态修改了API的值。但这种依托外界干涉的模式讲真的是非常傻,一点都不自动、一点都不智能。怪也怪自己以前的一成不变和墨守成规,其实说到底就是。确实,在搞技术上这种样子一点都不好…所以现在就开始来一些改变。

准备工作

安装cross-env依赖在终端执行

npm install --save-dev cross-env

关于依赖cross-env作为运行跨平台设置和使用环境变量的脚本,当执行build动作时通过设置、赋值环境变量告知当前构建包的是测试环境还是生产环境。
npm上对cross-env的说明

package.json

{
   
  "name": "demo",
  "version": "1.0.0",
  "description": "A Vue.js project"
### 创建适用于测试环境生产环境Vue 项目的 Docker 镜像的最佳实践 为了为 Vue 项目创建适合于测试环境生产环境的 Docker 镜像,可以遵循软件设计最佳实践[^1]以及容器化技术的相关原则。以下是详细的实现方法: #### 使用多阶段构建优化镜像大小 通过使用 Docker 的多阶段构建功能,可以在开发过程中利用完整的工具链来编译前端资源,而在最终的生产环境中仅保留运行时所需的最小依赖。 ```dockerfile # 构建阶段:用于安装依赖并打包应用 FROM node:16 as build-stage WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN npm run build # 生产阶段:基于轻量级的基础镜像部署静态文件 FROM nginx:alpine as production-stage COPY --from=build-stage /app/dist /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] ``` 上述 `Dockerfile` 中的第一部分定义了一个名为 `build-stage` 的中间层,在该层中完成 Vue 应用的构建工作;第二部分则从 Nginx 容器出发,复制已构建好的静态资产到指定目录下,从而形成精简高效的生产环境镜像。 #### 自动化测试流程集成 对于测试环境而言,除了提供服务外还需要支持自动化测试执行。可以通过命令行参数控制 Lighthouse 工具的行为,例如跳过浏览器交互环节、加载本地存储的艺术品数据集来进行性能审计,并生成报告文件[^2]。 ```bash lighthouse http://example.com -A --output=json --output-path=./reports/lhr.json ``` 此脚本片段展示了如何配置 Lighthouse 来评估网站质量而不启动实际图形界面的操作方式。它特别适合作为 CI/CD 流程的一部分被执行,在每次提交代码之后自动触发相应的检测过程。 #### 环境变量管理与差异化设置 无论是针对哪种类型的部署场景都应考虑采用统一的方式来管理和传递必要的配置项给应用程序实例本身。通常做法是借助 `.env` 文件或者直接设定操作系统级别的 ENV VARS 实现这一目标。 在具体实施上需要注意区分不同上下文中可能存在的差异之处比如 API endpoints URLS 或者其他敏感信息等等。这样做的好处是可以让同一个源码版本适应多种不同的运行条件而无需修改核心逻辑结构。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值