当前位置:网站首页>nuxt项目:全局获取process.env信息
nuxt项目:全局获取process.env信息
2022-04-23 14:53:00 【snowball@li】
一、项目: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'。
六、参考链接:
vue如何按照环境打包项目?如何在vue文件中使用process.env? - 简书
webpack.DefinePlugin-定义全局变量的插件_song854601134的博客-CSDN博客_defineplugin
webpack.DefinePlugin定义全局变量_人在斯国的博客-CSDN博客_webpack 定义全局变量
node 生产的env文件怎么注入_process.env.NODE_ENV 相关问题_weixin_39641334的博客-CSDN博客node 生产的env文件怎么注入_Vue函数中的process.env.NODE_ENV_weixin_39681621的博客-CSDN博客
版权声明
本文为[snowball@li]所创,转载请带上原文链接,感谢
https://blog.csdn.net/snowball_li/article/details/124276287
边栏推荐
猜你喜欢

LeetCode153-寻找旋转排序数组中的最小值-数组-二分查找

ASEMI超快恢复二极管与肖特基二极管可以互换吗

1N5408-ASEMI整流二极管1N5408

Set up an AI team in the game world and start the super parametric multi-agent "chaos fight"

QT actual combat: Yunxi calendar

DVWA之暴力破解(Brute Force)Low-->high

LeetCode151-颠倒字符串中的单词-字符串-模拟

capacitance

《JVM系列》 第七章 -- 字节码执行引擎

What is the effect of Zhongfu Jinshi wealth class 29800? Walk with professional investors to make investment easier
随机推荐
Arduino for esp8266串口功能简介
Alexnet model
利用 MATLAB 编程实现最速下降法求解无约束最优化问题
MySQL error packet out of order
8.3 语言模型与数据集
Bingbing learning notes: take you step by step to realize the sequence table
OPPO数据湖统一存储技术实践
Swift Protocol 关联对象 资源名称管理 多线程GCD 延迟 once
UML project example -- UML diagram description of tiktok
QT actual combat: Yunxi calendar
select 同时接收普通数据 和 带外数据
LeetCode167-两数之和II-双指针-二分-数组-查找
Sqlserver transaction and lock problem
编程哲学——自动加载、依赖注入与控制反转
你还不知道责任链模式的使用场景吗?
压缩映射定理
Programming philosophy - automatic loading, dependency injection and control inversion
Mds55-16-asemi rectifier module mds55-16
Contraction mapping theorem
8.5 循环神经网络简洁实现