webpack中的process.env.NODE_ENV

92 篇文章 3 订阅

1.什么是process?

process是node的全局变量,这个变量有一个env属性。创建一个js文件index.js,打印process变量console.log(process),使用node环境运行:

node index.js

可以看到

在这里插入图片描述

2.process.env.NODE_ENV 是什么?

1.这个变量不是process.env本来就有的,是通过设置得到的;
2.通过这个变量可以判断我们环境是开发环境还是生成环境。

3.配置process.env.NODE_ENV

(1)webpack4中可以通过mode来配置:

development:mode:“development”
production: mode:“production”
默认情况下webpack会将production作为mode的默认值

例如webpack: 4.44.1中
在这里插入图片描述

/build/webpack.dev.conf.js
在这里插入图片描述

/config/dev.env.js
在这里插入图片描述
在这里插入图片描述

设置结束。

(2)webpack3或者以下版本,需要使用插件webpack自带插件DefinePlugin来配置:

plugins: [
  new webpack.DefinePlugin({ 
    'process.env': {
	  NODE_ENV: '"production"' // 或者'"development"'
    }
  })
]

启动命令结合配置环境变量:

"scripts": {
  "dev": "NODE_ENV=development webpack-dev-server --progress --colors --devtool cheap-module-eval-source-map --hot --inline",
  "build": "NODE_ENV=production webpack --progress --colors --devtool cheap-module-source-map",
  "build:dll": "webpack --config webpack.dll.config.js"
}

注意:上面的代码在window / mac 环境中并不兼容, windows不支持NODE_ENV=development的这样的设置方式,所以需要引入cross-env库实现兼容。

安装cross-env:

npm install --save-dev cross-env

启动命令结合配置环境变量修改为:

"scripts": {
  "dev": "cross-env NODE_ENV=development webpack-dev-server --progress --colors --devtool cheap-module-eval-source-map --hot --inline",
  "build": "cross-env NODE_ENV=production webpack --progress --colors --devtool cheap-module-source-map",
  "build:dll": "webpack --config webpack.dll.config.js"
}

设置成功。


理解 cross-env

cross-env 是运行跨平台设置和使用环境变量的脚本。

作用:

使用 NODE_ENV = production
来设置环境变量的时候,大多数windows命令会提示将会阻塞或者异常,并且windows不支持NODE_ENV=development的这样的设置方式。因此cross-env 出现了。我们就可以使用 cross-env命令设置或使用环境变量。 cross-env能够提供一个设置环境变量的scripts(脚本),这样我们就能够以unix方式设置环境变量,并且在windows上也能够兼容。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风细雨_林木木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值