process.env.NODE_ENV

process.env.NODE_ENV

最近在看Vue源码解析,看到下面的代码

1
2
3
4
5
6
if (el === document.body || el === document.documentElement) {
process.env.NODE_ENV !== 'production' && warn(
`Do not mount Vue to <html> or <body> - mount to normal elements instead.`
)
return this
}

process

Node中的process.env官方文档

返回用户的环境信息。

在node环境下执行process env,返回一个如下对象:

1
2
3
4
5
6
7
8
9
10
11
12
{
TERM: 'xterm-256color',
SHELL: '/usr/local/bin/bash',
USER: 'maciej',
PATH: '~/.bin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin',
PWD: '/Users/maciej',
EDITOR: 'vim',
SHLVL: '1',
HOME: '/Users/maciej',
LOGNAME: 'maciej',
_: '/usr/local/bin/node'
}

可以修改这个对象,但是修改的内容不会影响到进程之外。

process.env 新增属性时会将属性的值转换成字符串。 在未来的版本中,如果属性的值不是字符串、数字或布尔值,则可能抛出错误。

使用 delete 可以从 process.env 中删除属性。

在 Windows 上,环境变量不区分大小写。

process.env.NODE_ENV是一个完全人为定义的

直接写在js文件:

1
process.env.NODE_ENV = 'production';

然后在package.json

1
2
3
"scripts": {
"start": "set NODE_ENV=dev && node app.js"
}