'%NODE_ENV%'===当'%NODE_ENV%'值为'生产'时,'生产'的评估结果为假

时间:2019-04-27 07:59:48

标签: react-scripts rollbar

我正在遵循本指南https://docs.rollbar.com/docs/react#section-create-react-app,遇到意外行为:

/public/index.html内部:

var env = '%NODE_ENV%'
console.log(1:, ('%NODE_ENV%' === 'production'))
console.log(2:, '%NODE_ENV%')
console.log(3:, env)
console.log(4:, (env === 'production'))

输出:

1: false
2: "production"
3: "production"
4: true

为什么第一个日志是false

我在react-scripts@2.1.8

1 个答案:

答案 0 :(得分:0)

tl:dr;

var env = '%NODE_ENV%';
var _rollbarConfig = {
    enabled: (env === "production")

这个问题很奇怪。这样编译的代码最终以Rollbar的文档结尾:

public / index.html:
enabled: ("%NODE_ENV%" === "production"),

build / index.html:
enabled: !1

在评估之前添加另一个!可以给出正确的答案,但这很奇怪。因此,我考虑过先在env中捕获变量,然后对该变量进行“生产”评估,结果是:

public / index.html

var env = '%NODE_ENV%';
var _rollbarConfig = {
    enabled: (env === "production")

build / index.html

var env = "production";
var _rollbarConfig = {
    enabled: env === "production"

它现在可以正确评估,并且对将来的维护更好。