反应 - 发生缩小的异常

React - Minified exception occurred

我通过 NPM 安装了 React js,并使用 browserify 来管理 React 中的组件。当 React 出现异常时,控制台显示为

"Uncaught Error: Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings."

如何启用完整的错误消息?

正如 Benjamin Gruenbaum 在评论中指出的那样,将 NODE_ENV 设置为开发解决了问题。

set NODE_ENV=development

我终于解决了这个问题。

如果你和我一样 运行 设置 NODE_ENV 的命令实际上从未奏效,请检查你是否链接到 react.min.js 而不是完整版本文件。

Link 到完整版本,它应该很有魅力。 :D

如果您使用 jspm 来捆绑您的代码,请注意版本 0.16.24 导入缩小的 "production" 版本的 React,这会引发此错误。我的临时解决方案是将 jspm 降级到 0.16.23。

编辑 jspm 的未来版本将允许您声明生产版本与开发版本(参见 jspm beta documentation

我遇到了这个问题,对我来说我不需要禁用缩小或使用反应源。我的脚本只是在根元素之前加载。所以我只是将脚本移出索引文件源代码中的头部和 div 下方并修复了它。

将我的 index.jade 更改为:

html
 head
   title Super coo site
   script(src="bundle.js")
 body
   div#root

为此:

html
 head
   title Super coo site
 body
   div#root
   script(src="bundle.js")

当我的 render 方法返回时出现这个错误 undefined 例如

render() {
    let view;
    // Not paying attention and slip a case where view won't get assigned a value
    if(this.props.foo == 'hello') {
        view = <HelloView />
    }
    else if(this.props.foo == 'bye') {
        view = <ByeView />
    }
    return view;
}

当 this.props.foo 为 'hi'

时将触发错误

您是否检查过要渲染的 DOM 元素?由于一个愚蠢的错误,我之前遇到过这个错误。最糟糕的部分是捆绑包被缩小了。元素 id 不相同

Index.html

<div id="ds-app"></div>

app.jsx

React.DOM.render(<App/>, document.getElementById('app'))

如果您在使用 Karma + Webpack 时遇到这个问题,以下 Webpack 配置在 运行 测试时为我解决了这个问题:

plugins: [
    new webpack.DefinePlugin({
        'process.env': {
            NODE_ENV: JSON.stringify('development')
        }
    })
]

version 15.2 开始,生产 React 错误消息 (NODE_ENV=production) 现在包括一个 URL,您可以访问它,在那里您可以看到原始的、未混淆的错误。

https://twitter.com/dan_abramov/status/748969886433546240

您应该考虑升级到 React 15.2 以便访问这些错误消息。此外,一些生产崩溃报告工具 automatically unminify these errors 适合您。

在生产中使用 min.js 文件或将您的应用程序代码与 process.env.NODE_ENV === 'production' 捆绑在一起,您应该可以开始了!

如果你的package.json脚本有dll,尝试执行npm run dllyarn run dll.