Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >umijs环境变量问题

umijs环境变量问题

作者头像
阿超
发布于 2023-07-21 07:17:56
发布于 2023-07-21 07:17:56
1.6K20
代码可运行
举报
文章被收录于专栏:快乐阿超快乐阿超
运行总次数:0
代码可运行

我们关心的,不是你是否失败了,而是你对失败能否无怨。——林肯

今天遇到一个问题,umijs框架下的环境变量配置不好使

首先是我package.json里的配置是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 "scripts": {
    "start": "cross-env NODE_ENV=dev umi dev",
    "build:test": "cross-env NODE_ENV=test umi build",
    "build:production": "cross-env NODE_ENV=prod umi build"
}

然后在我其中一个js文件中进行引用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
console.log({ NODE_ENV: process.env.NODE_ENV });
console.log({ 'process.env': process.env });

然后当我指定为test

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"scripts": {
   "start": "cross-env NODE_ENV=test umi dev"
}

其打印出来的结果仍然是development,(大概是这个效果,这里是手动做的打印数据)

于是按照umijs官方文档去配置:配置

找到.umirc.ts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { defineConfig } from 'umi';


export default defineConfig({
    define: {
        'process.env': {
            NODE_ENV: 'test',
        },
    }
})

配置完毕后,发生了一些奇怪的变化,我看到了这一幕

取值时仍然是development,但是随后我展开打印,却变成了test

这时候,我想到换一个变量名,于是我修改为UMI_ENV

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { defineConfig } from 'umi';


export default defineConfig({
    define: {
        'process.env': {
            UMI_ENV: 'test',
        },
    }
})

然后发现其成功生效

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
console.log({ UMI_ENV: process.env.UMI_ENV });
console.log({ 'process.env': process.env });

打印结果

此时虽然成功修改到了全局变量,但我这个.umirc.ts没有按照我package.json中的环境变量进行多环境应用配置,于是我找到了umijs官方文档提到的多份环境配置

新建了.umirc.dev.ts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { defineConfig } from 'umi';

export default defineConfig({
    define: {
        'process.env': {
            UMI_ENV: 'development',
        },
    },
});

新建了.umirc.test.ts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { defineConfig } from 'umi';

export default defineConfig({
    define: {
        'process.env': {
            UMI_ENV: 'test',
        },
    },
});

以及.umirc.prod.ts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { defineConfig } from 'umi';

export default defineConfig({
    define: {
        'process.env': {
            UMI_ENV: 'production',
        },
    },
});

然后修改package.json

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 "scripts": {
    "start": "cross-env UMI_ENV=dev umi dev",
    "build:test": "cross-env UMI_ENV=test umi build",
    "build:production": "cross-env UMI_ENV=prod umi build"
}

此时,只要我们

指定UMI_ENVdev,则对应的process.env.UMI_ENV则是development

指定UMI_ENVtest,则对应的process.env.UMI_ENV则是test

指定UMI_ENVprod,则对应的process.env.UMI_ENV则是production

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
2 条评论
热度
最新
看下你的umijs版本,这是v3的方式:https://v3.umijs.org/zh-CN/config
看下你的umijs版本,这是v3的方式:https://v3.umijs.org/zh-CN/config
回复回复点赞举报
为什么我的 按照你的来了 还是不生效呢 还是只有一个 NOOE_ENV
为什么我的 按照你的来了 还是不生效呢 还是只有一个 NOOE_ENV
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
node环境中设置process环境变量
node中有全局变量process表示当前node进程,process(进程)其实就是存在node中的一个全局变量,process.env包含着关于系统环境的信息。但是process.env中并不存在NODE_ENV这个东西。其实NODE_ENV只是一个用户自定义的变量。
biaoblog.cn 个人博客
2022/08/11
4.3K0
express+ts+typeorm入门
express 是node生态中非常优秀的框架,大部分的业务接口,我们都可以通过它来实现。
知了轻语
2024/08/15
3400
express+ts+typeorm入门
Vue多环境配置问题2020
安装cross-env npm install cross-env --save-dev 修改package.json文件 "scripts": { "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "dev--test": "cross-env env_config=test webpack-dev-server --inline --progress --co
程序员不务正业
2020/03/20
1K0
uniapp小程序迁移到TS
我一直在做的小程序就是 山科小站 也已经做了两年了,目前是用uniapp构建的,在这期间也重构好几次了,这次在鹅厂实习感觉受益良多,这又得来一次很大的重构,虽然小程序功能都是比较简单的功能,但是这好不容易实习学到的东西得学以致用,那就继续在小程序上动手吧哈哈。这次实习收获最大倒不是怎么迁移到TS,而是一些组件设计的概念以及目录结构设计上的东西,不过这都是在之后重写组件的时候要做的东西了。回到正题,小程序是用uniapp写的,毕竟还是比较熟悉Vue语法的,这次迁移首先是要将小程序从HBuilderX迁移到cli版本,虽然用HBuilderX确实是有一定的优点,但是拓展性比较差,这些东西还是得自己折腾折腾,迁移到cli版本完成后,接下来就是要慢慢从js过渡到ts了,虽然是Vue2对ts支持相对比较差,但是至少对于抽离出来的逻辑是可以写成ts的,可以在编译期就避免很多错误,另外自己使用cli创建可以搞一些其他功能,毕竟只要不操作DOM的话一般还是在用常用的js方法,例如可以尝试接入Jest单元测试等。
WindRunnerMax
2021/10/15
1.5K0
前端package.json文件详解
package.json 文件是 Node.js 项目的配置文件,用于描述项目的元数据和依赖关系。它是一个 JSON 格式的文件,位于项目根目录下。在这个文件中,你可以定义项目的名称、版本号、作者、许可证等项目信息,并且可以列出项目所需的依赖包和脚本。
jack.yang
2025/04/05
2750
【实战技巧】Vue3+Vite工程常用工具的接入方法
Vue3 正式版已经发布一段时间了,和 Vue3 更配的工具 Vite 也已经投入使用了,本文整理了如何将一些常用的工具整合到项目中。
一尾流莺
2022/12/10
2.1K0
CROSS-ENV不同环境配置
项目背景 为了适应h5环境搭建需求,需要动态配置开发,测试,生产三种对应域名及其及打包命令。使用cross-env可以让配置环境更加清晰明了还好管理。 简介 cross-env的作用是不需要全局配置NODE_ENV在scripts脚本中修改NODE_ENV的值从而实现不同环境中proccess.env.NODE_ENV的不同,而config的工作原理就是基于NODE_ENV这个值的,所以推荐两者结合使用。 安装 cross-env
我不是费圆
2020/10/09
4.9K0
Vue 2.0 添加多环境打包配置二(vue init webpack创建的项目,有build,co
用户6256742
2024/06/20
5620
前端月入过万必看
项目背景 为了适应h5环境搭建需求,需要动态配置开发,测试,生产三种对应域名及其及打包命令。使用cross-env可以让配置环境更加清晰明了还好管理。 简介 cross-env的作用是不需要全局配置NODE_ENV在scripts脚本中修改NODE_ENV的值从而实现不同环境中proccess.env.NODE_ENV的不同,而config的工作原理就是基于NODE_ENV这个值的,所以推荐两者结合使用。 安装 cross-env
我不是费圆
2024/05/24
940
react配置生产环境和测试环境地址
写在前面 之前一直写关于vue的文章,经常看我文章的可能从上篇文章就知道了我已经不写vue了,以后就写react了,会持续更新,今天说一下我搭建框架的时候配置不同环境的步骤,大家可以借鉴以下,也可以自己搞一下! 在项目根目录创建两个环境文件 .env.development .env.production 文件内容 .env.developemnt REACT_APP_BASE_URL = 'https://test.com' REACT_APP_ENV = 'development' .env.pr
何处锦绣不灰堆
2021/05/06
2.8K0
Vue 3.0 遇到的问题
注意: webpack 5 要求至少 Node.js 10.13.0 (LTS)
White feathe
2021/12/08
1.8K0
Vue 3.0 遇到的问题
webpack搭建基础vue项目
npm i vue vue-loader vue-template-compiler cross-env css-loader style-loader url-loader file-loader html-webpack-plugin webpack-dev-server
切图仔
2022/09/08
3210
Node.js设置环境变量
在使用Node.js进行开发时我们会将敏感的信息分为生产环境和开发环境进行文件形式的保存,那么如何设置环境变量成为了 一个问题。
用户6256742
2022/07/06
6.2K0
Node.js设置环境变量
【前端配置篇】vue项目之.env系列文件配置详解:.env文件配置全局环境变量
vue 会根据启动命令自动加载相对应的环境配置文件。vue是根据文件名进行加载的,所以上面说“不要乱起名,也无需专门控制加载哪个文件”
江一铭
2022/06/17
19.1K0
【前端配置篇】vue项目之.env系列文件配置详解:.env文件配置全局环境变量
如何在vue项目中配置你自己的启动命令和打包命令
在开发中,通常会需要和后台做一些开发调试, 本地开发, 和线上观测 这时 如何用一套代码 加上 几个命令来轻松的做到这些?
yangdongnan
2019/04/01
4K0
如何在vue项目中配置你自己的启动命令和打包命令
项目实战-UmiJS开发(附带qiankun)
一般来说,中小型团队的中台项目都是前端自己主导样式,而样式、布局、路由、权限等等一系列的通用性很强的基础框架,自研比较花时间,投入的回报率不高,最好的方法就是在比较成熟的方案上进行一定的个性化定制,性价比会很高,所以我们也采用了 UmiJS + ANT DESIGN PRO 的架构来进行项目升级(之前的老项目基于 Umi2.0 与 ANT DESIGN PRO 3.0 开发)
Cookieboty
2020/12/08
2.3K0
项目实战-UmiJS开发(附带qiankun)
Vue 设置环境变量和模式
在项目的根目录下新建两个文件: .env.dev .env.prod 文件内容如下: 开发环境: NODE_ENV=development VUE_APP_SERVER=http://127.0.
wsuo
2020/10/26
8140
Vue 设置环境变量和模式
利用Gulp实现前端打包自动上传服务器
注意在这里遇到一个坑,如果使用的是gulp4以上版本,打包命令可按照上面的方法写,如果是gulp4以下版本,按照下面的方法写
w候人兮猗
2020/07/01
1.7K0
从零开始搭建Vue工程
dist目录存放编译后的资源 src存放源码文件 运行命令 npm init -y
切图仔
2022/09/08
8870
从零开始搭建Vue工程
Week33-组件平台开发
2-1 组件平台架构设计 点击查看【processon】 2-2 组件平台技术选型和框架搭建 umi-component-test改项目代码提交至:https://github.com/liugezhou/umi-component-test
六个周
2022/10/28
7320
相关推荐
node环境中设置process环境变量
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验