nuxt项目:全局获取process.env信息

简介: nuxt项目:全局获取process.env信息

一、项目:nuxt项目

二、需求:

环境变量配置

在项目启动 或打包后,得到全局的一个变量信息,从而我们去做一些事情。

三、环境变量通常包含哪些信息:

NODE_ENV:项目脚手架里定义的,告诉我们是开发环境(development)还是线上环境(production)

PROJECT_NAME: 项目名称,告诉我们当前项目是哪个项目。在多项目配合的大型项目很重要。

API_SERVER:接口地址所属的服务。

MODE:当前项目所处的环境(dev、test、uat、pre、prd)

四、如何定义、使用环境变量:

4.1、在.env文件进行定义

4.2、在package.json文件scripts里进行定义:

// 这里定义的MODE、PRO都是定义的环境变量
"scripts": {
    "dev": "cross-env MODE=DEMO PRO=CHAAA nuxt",
  },

4.3、在nuxt.config.js文件env里进行配置:

// .env里边定义的变量都可以在这里进行定义
// 同理package.json里定义的也可以在这里配置
env: {
    COOKIE_PATH: process.env.COOKIE_PATH || '/',
    PUBLIC_PATH: process.env.PUBLIC_PATH || '/',
    SERVER_NAME: process.env.PUBLIC_PATH || '/',
    API_SERVER: process.env.API_SERVER || '/',
    MODE: process.env.MODE || '/',
    PUBLIC_TEST: process.env.PUBLIC_TEST || '/',
  },

4.2.3、使用

// 找到一个js文件,重新项目后,打印信息
console.log('49env-DEVELOPMENT-PRODUCTION', process.env.NODE_ENV)
console.log('50env', process.env.PUBLIC_PATH)
console.log('51env', process.env.SERVER_NAME)
console.log('52env', process.env.API_SERVER)
console.log('53env', process.env.API_SERVER_Z)
console.log('54env', process.env.MODE)
console.log('55env', process.env.PRO)
console.log('56env', process.env.PUBLIC_TEST)

浏览器打印到了对应的信息:

五、浅析

process对象是全局变量,它提供当前node.js的有关信息,以及控制当前node.js的有关进程。因为是全局变量,它对于node应用程序是始终可用的,无需require()。

既然process都是一个对象了,env自然是它的一个属性,这个属性返回包含用户环境信息的对象。在终端输入node后,在输入process.env可以看到打印出来的信息。

process.env是node中的环境变量,在模块中是无法直接拿到的,比如.js、.vue,还需要配置一下DefinePlugin。

DefinePlugin可以定义一些全局变量,让我们在模块当中直接使用,不用做任何声明。

请注意,Nuxt 使用 webpack 的 definePlugin 来定义环境变量。这意味着 Node.js 中的process或process.env既不可用也不能定义。nuxt.config.js 中定义的每个 env 属性都单独映射到process.env.xxxx并在编译期间进行转换编译。

意思是,console.log(process.env)将输出{},但console.log(process.env.you_var)仍将输出您的值。它将process.env.your_var的所有实例替换为您将其设置为的值。即:env.test ='testing123'。如果你在代码中的某个地方使用process.env.test,它实际上被翻译成'testing123'。

相关文章
Nuxt 3环境变量读取问题解决方案
自动暴露给客户端和服务端 普通的 process.env 变量只在构建时可用 .env 文件未正确加载: 确保你的 .env 文件在项目根目录 确认文件内容格式正确(API_BASE_URL=#) 运行环境问题: 确保你在运行项目前已经设置了环境变量 解决方案 修改环境变量命名: 在 .env 文件中: ``` NUXT_PUBLIC_API_BASE_URL=https://www.fglt.me/
802 17
|
JavaScript 前端开发 容器
Vue3 实现一个自定义toast(小弹窗)(二)
Vue3 实现一个自定义toast(小弹窗)
Vue3 实现一个自定义toast(小弹窗)(二)
|
10月前
|
网络安全 Android开发 开发者
【实用软件】Escrcpy使用教程!功能强大的手机投屏电脑工具
Escrcpy是一款基于Electron的跨平台安卓投屏工具,支持USB、WiFi及IP连接,可实现低延迟屏幕镜像、鼠标操控、多设备管理与多屏协同,还具备录屏、文件传输、应用批量操作等实用功能。
2578 2
|
Java Android开发 开发者
Android10 修改开发者选项中动画缩放默认值
Android10 修改开发者选项中动画缩放默认值
1038 0
|
数据建模 网络安全
阿里云SSL证书不同类型DV、OV和EV如何收费?单域名和通配符SSL价格整理
阿里云SSL证书提供免费和收费选项。收费证书包括:DV单域名WoSign 238元/年,DigiCert通配符DV 1500元/年,GlobalSign OV企业型1864元/年等。免费SSL证书由Digicert提供,有效期3个月,每年可领取20个单域名证书。更多详情及价格表请参考阿里云官方页面。
|
存储 对象存储 索引
对象存储OSS-m3u8视频私有权限
当上传至私有存储桶的M3U8视频缺少签名信息时,会导致播放失败(403错误)。解决方案是使用OSS的动态签名机制,在首次访问M3U8文件时,通过在URL中添加`x-oss-process=hls/sign`参数,OSS将自动对所有TS切片地址进行签名,确保视频正常播放。
1966 2
|
JavaScript 安全 网络安全
Nuxt.js 速成(含使用宝塔实现nuxt项目部署)
Nuxt.js 速成(含使用宝塔实现nuxt项目部署)
2111 0
|
JavaScript 开发工具 开发者
vue3【提效】使用 VueUse 高效开发(工具库 @vueuse/core + 新增的组件库 @vueuse/components)
vue3【提效】使用 VueUse 高效开发(工具库 @vueuse/core + 新增的组件库 @vueuse/components)
1830 1

热门文章

最新文章