热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

node全局变量process.env定义变量

我们在开发的时候会有生产环境(production)和开发环境(development),这两种环境中可能用到不同的配置,比如上线的时候本地域名替换成线上域名,如何区别使用它们,是我今天要谈

我们在开发的时候会有生产环境(production)和开发环境(development),这两种环境中可能用到不同的配置,比如上线的时候本地域名替换成线上域名,如何区别使用它们,是我今天要谈到的一个问题。

Node.js 中有一个全局的对象 process,这个对象无需 require() ,它控制着 Node.js 的进程的信息。

控制台输入 node 进入 REPL 环境,输入 process.env 可看到一个对象。

C:UsersAdministratorDesktop所有的样式表>node
> process.env

我们接下来给 env 添加一个 NODE_ENV 属性,我们通过这个 NODE_ENV 来判断开发环境和生产环境。

那么如何设置使用它那?思路就是使用 cross-env 实现跨平台设置 NODE_ENV。

首先安装 cross-env:

npm install --save cross-env

打开 package.json 文件修改 script 的内容:

"scripts": {
  "dist": "cross-env NODE_ENV=production webpack"//新增的代码 cross-env NODE_ENV=prod
},

然后去修改 webpack.config.js 的内容:

console.log("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆");
console.log(process.env.NODE_ENV);
console.log("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆");

最后还是像启用项目一样启用 package.json 就行了。

npm run dist

就会看到控制台已经输出,我们定义的变量:

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
production
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

如果我们把变量放在 webpack.config.js 的 mode 里面:

mode:process.env.NODE_ENV

完全可以在组件里面进行访问:例如App.js 里面

import React, { Component } from 'react'
console.log(process.env.NODE_ENV)
export default class App extends Component {
    render() {
        return (
            
        )
    }
}

推荐阅读
  • packagetest;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOE ... [详细]
  • socket.io是个基于node.js的快平台实时通讯框架。只用不到10行代码,就可以搭建一个简单的多人实时聊天室。先来看看运行后的效果:socket.io多人聊天室只要简单几 ... [详细]
  • 2019.4.14第1001题:SumProblemProblemDescriptionHey,welcometoHDOJ(HangzhouDianziUniversityOnli ... [详细]
  • NSSROUND#8[Basic]
    文章目录一、[NSSRound#8Basic]MyDoor二、[NSSRound#8Basic]Upload_gogoggo三、[NSSRound#8Basic]MyPage四、[ ... [详细]
  • FroggerTimeLimit:1000MSMemoryLimit:65536KTotalSubmissions:32257Accepted:10396DescriptionFr ... [详细]
  • PHP 扩展编译的通用方法
    2019独角兽企业重金招聘Python工程师标准以memcache扩展为例子首先需要到软件的官方(如memcached的地址http:pecl.php.netp ... [详细]
  • 3295:[Cqoi2011]动态逆序对Description对于序列A,它的逆序对数定义为满足iAj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除 ... [详细]
  • XShell连接不了虚拟机
    本机安装好虚拟机和centeros;使用xshell连接:linuxCouldnotconnectto'127.0.0.1'(por ... [详细]
  • 本文分析和介绍了GLo ... [详细]
  • python基础(二、pycharm安装、卸载)
    3.在Ubuntu中安装PyCharmPyCharm的官方网站地址是:https:www.jetbrains.compycharm注意:安装时不要使用root用户安装,否则后期使用 ... [详细]
  • spotify engineering culture part 1
    原文,因为原视频说的太快太长,又没有字幕,于是借助youtube,把原文听&打出来了。中文版日后有时间再翻译。oneofthebigsucceessfactorshereatSpo ... [详细]
  • delphi控件大全
    本文章已收录于:delphi控件查询:http:www.torry.nethttp:www.jrsoftware.orgTb97最有名的工具条(ToolBar) ... [详细]
  • linux filesystem_如何使用cgdb + qemu调试linux内核模块
    如何使用cgdbqemu调试linux内核模块前言Linux代码庞大而繁杂,光看代码会使人头晕目眩,如果能通过调试工具对其代码执行流程进行调试ÿ ... [详细]
  • Eclipse中SpringBoot响应jsp的简单demo
    首先在Eclipse里新建一个maven工程,这里的打包类型和父包如果后续再去pom中添加也可以此时的工程路径是这样的接下来去到pom中添加相关的依赖,如果有报错mavenupda ... [详细]
  • ARToolKitunity
    ARToolKit为开源的AR库,相对于高通和easyAr有几点特点:1)开源2)识别项目可以动态添加(详细在后)3)识别文件可以本地生成4)目前只能识别图片(目前为.jpg格式) ... [详细]
author-avatar
林小秋
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有