【umi配置环境变量】执行打包命令报错

umi环境变量的配置是在.umirc.ts文件中的,其中包含了proxy代理等umi配置项的设置及环境变量。

如下所示:

import { defineConfig } from 'umi';

export default defineConfig({
	routes: [{...}],
	define: {
		// 'process.env': 'dev', // 值可以是字符串 也可以是对象
		'process.env': { // 环境变量设置,可根据需要自定义
			UMI_ENV: 'dev',
			GLOBAL_SECRETKEY: 'MKKJKJSDFEWWEGG@DEV',
		},
	},
	alias: {
		'@': '/src',
	},
	proxy: { ... },
	// ...其他参数
})

根据Umi的配置文档,我们发现,配置多个环境的环境变量需要创建并写入多个.umirc文件。

假设我们有4个环境需要配置:

  1. 开发环境:.umirc.dev.ts
  2. 测试环境:.umirc.st.ts
  3. 预发布环境:.umirc.uat.ts
  4. 生产环境:.umirc.prod.ts

package.jsonscripts配置如下:

"scripts": {
    "start": "umi dev",
    "build": "cross-env UMI_ENV=dev umi build",
    "build:st": "cross-env UMI_ENV=st umi build",
    "build:uat": "cross-env UMI_ENV=uat umi build",
    "build:prod": "cross-env UMI_ENV=prod umi build",
    "postinstall": "umi generate tmp",
    "prettier": "prettier --write '**/*.{js,jsx,tsx,ts,less,md,json}'",
    "test": "umi-test",
    "test:coverage": "umi-test --coverage"
  },

问题来了,当我们yarn build部署的时候报错了,没有找到构建文件。

为什么会如此?因为umi默认的.umirc.ts文件没有配置,umi是通过打包命令,合并基础文件及打包命令指定的文件的,基础文件就是.umirc.ts,而合并的文件是.umirc.dev.ts,后者会把前者有的配置值覆盖

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hzxOnlineOk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值