npm run build-编译失败-无法读取未定义的属性“ toLowerCase”

时间:2019-03-17 21:50:30

标签: reactjs npm build

在我的应用程序(create-react-app)中使用npm run build时, 它无法编译,并给我消息Cannot read property 'toLowerCase' of undefined

我没有在我的应用程序中使用toLowerCase,并且发现在此代码中唯一使用此位置的地方是脚本:node_modules/react-scripts/scripts/build.js

if (
  process.env.CI &&
  (typeof process.env.CI !== 'string' ||
    process.env.CI.toLowerCase() !== 'false') &&
  messages.warnings.length
) {
  console.log(
    chalk.yellow(
      '\nTreating warnings as errors because process.env.CI = true.\n' +
      'Most CI servers set it automatically.\n'
    )
  );
  return reject(new Error(messages.warnings.join('\n\n')));
}

对我来说似乎很奇怪的是,即使在那里,它甚至都不应该给我Cannot read property 'toLowerCase' of undefined,因为如果processe.env.CI未定义,它应该将第一个条件语句读取为false-y,甚至不读取{{ 1}}。 另外,我尝试删除整个代码段,并且遇到相同的错误。 我还有另一个react-app,并且processe.env.CI.toLowerCase命令可以正常工作,所以我真的很茫然,不知道该在哪里寻找答案。

3 个答案:

答案 0 :(得分:1)

好吧, 这很奇怪,但这是我的问题所在:

.collage{
margin: ;
display: flex;
flex-wrap:wrap;
justify-content: space-between;
align-items: stretch;}

我对保证金价值有错字,而这个简单的错误就是阻止了这种奇怪的事情并给了我一个toLowerCase问题!!!!

我永远猜不到!

答案 1 :(得分:1)

由于“important”在边框宽度上,我遇到了同样的问题:

&.checkbox-accent {
    > span {
        border-width: get($checkbox-config, types, accent, borderWidth) !important;
        border-style: solid !important;
        background-color: transparent !important;

        &:after {
            display: block;
        }
    }
}

就我而言,错误消息是:

Cannot read property 'toLowerCase' of undefined
CompileError: Begins at CSS selector .checkbox.checkbox-accent>span

所以我能够找到一个确切的文件和行

答案 2 :(得分:0)

  

我没有在我的应用程序中使用toLowerCase

当您调用build.js时,您很清楚。

无论哪种方式,在if()语句中,将测试每个单独的语句。如果说第一个失败,它就不会“爆发”。 由于尚未设置环境属性“ CI”,因此此if语句将始终失败,因为process.env.CI始终为未定义/为空。 .toLowerCase()是一种对null无效的方法。