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 中的processprocess.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'。

相关文章
|
21天前
|
自然语言处理 JavaScript
vue element plus Config Provider 全局配置
vue element plus Config Provider 全局配置
44 0
|
10月前
PM2 配置文件(ecosystem.config.js 字段详细介绍)
PM2 配置文件(ecosystem.config.js 字段详细介绍)
363 0
|
21天前
|
前端开发 测试技术
测Nuxt.js入坑,配置dev、test、pro三种环境的变量env
先下载一个cross-env模块,比较好控制环境
32 5
|
8月前
|
JavaScript Shell 数据库连接
Spartacus 项目中 .env-cmdrc 文件的作用是什么?
Spartacus 项目中 .env-cmdrc 文件的作用是什么?
50 0
|
21天前
|
JavaScript 测试技术
vue环境变量配置——process.env(详细)
vue环境变量配置——process.env(详细)
113 0
|
21天前
|
JavaScript 测试技术
Vue配置生产环境和测试环境的参数,.env.production、.env.development怎么用?
Vue配置生产环境和测试环境的参数,.env.production、.env.development怎么用?
|
21天前
|
前端开发 JavaScript
React .env 环境变量(详细使用、命名方式)
React .env 环境变量(详细使用、命名方式)
50 0
|
7月前
|
JavaScript 测试技术
vue环境变量配置——process.env
vue环境变量配置——process.env
81 0
|
11月前
|
JavaScript
vue中的.env全局配置
vue中的.env全局配置
68 0
|
负载均衡 JavaScript 算法
Node.js入门之process模块、child_process模块、cluster模块
本文主要介绍node中跟进程相关的三个模块。process是node的全局模块,作用比较直观。可以通过它来获得node进程相关的信息,child_process主要用来创建子进程,可以有效解决node单线程效率不高的问题。cluster是node的集群模块,提供了开箱即用的进程创建功能。
364 0