带有React Uncaught参考错误的WebPack

瑞安·兰乔(Ryan Lanciaux)

我非常松散地遵循这里的示例,直到开始运行开发服务器为止。

我有一个测试React组件(在scripts / test.jsx中):

/** @jsx React.DOM */

var React = require('react');

var Test = React.createClass({
    render: function(){
        return <h1>HI!</h1>
    }
});

module.exports = Test;

我有一个webpack.config,在其中我针对源目录使用jsx加载器(除了添加库属性该示例与示例中的jsx加载器基本相同)。

我运行webpack并按预期方式生成了捆绑文件,但是,当我尝试在html文件中使用组件时(包括bundle.js脚本引用之后),我在控制台中得到以下信息:“ Uncaught ReferenceError:Test not定义为“。

HTML包含以下内容:

<div id="hi">
</div>
<script type="text/jsx">
    /** @jsx React.DOM */
    React.renderComponent(
      <Test />,
      document.getElementById('hi')
    );
</script>

我是否在做一些不正确的事情,以针对HTML页面使用在CommonJS样式中定义的组件,而该页面在技术上并未使用模块加载器(我正在尝试将此测试视为试图加载该组件而没有任何内容的人结构化模块加载程序的类型)?

Webpack的输出在这里可用

编辑2:完整的示例代码可作为github回购

Tgriesser

是的,最好还是遵循示例并要求Test使用.jsx文件,而不是将其内联到HTML中。

否则,Test需要将其导出为全局变量,因此您需要遵循与browserify--standalone标志类似的约定,看起来像这样:

output: {
    library: "Test",
    libraryTarget: "umd"
}

http://webpack.github.io/docs/webpack-for-browserify-users.html#standalone

编辑:在查看您的GH回购后,您有:

<script src="bundle.js" type="text/js"></script>

代替

<script src="bundle.js" type="text/javascript"></script>

因此根本没有加载捆绑软件。此外,您无法拥有2个独立的react副本,即您当前需要的版本,您需要从webpack中获取React,然后再将其加载到页面上。您应该导出一个带React对象的函数,或者使用全局函数在捆绑包之外使用它。

例如,这将起作用:

/** @jsx React.DOM */
module.exports = function(React) {

var Test = React.createClass({
    render: function(){
        return <h1>HI!!</h1>
    }
});

return Test;
};

接着:

    /** @jsx React.DOM */
    React.renderComponent(
      Test(React)(),
      document.getElementById('hi')
    );

或这个

/** @jsx React.DOM */
var Test = React.createClass({
    render: function(){
        return <h1>HI!!</h1>
    }
});

module.exports = Test;

接着:

    /** @jsx React.DOM */
    React.renderComponent(
      <Test />,
      document.getElementById('hi')
    );

虽然我无法想象大多数使用React包的人都会使用脚本标签加载它,并且您通常不希望使用全局变量,所以最好使用CommonJS样式的require并让人们找出填充或随你。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

React webpack dev server 可以工作,但是当我创建 prod 包时,我收到参考错误“require is not defined”

React Native中未捕获的参考错误?

带有Nuxt.js的AWS Amplify-参考错误:未定义导航器

React build-参考错误:未定义窗口-如何仅在客户端运行

由于参考错误导致项目测试失败-React

Windows的代码块中的OpenCV有未定义的参考错误

NDK编码中有太多未定义的OpenCV参考错误

我正在尝试使用谷歌表单 API。但是有一个参考错误

为什么我得到了参考错误,我的代码有什么问题?

乳胶 | 超参考错误 | � 的参数有一个额外的 }。\结束{文档}

带有redux错误的React导航TabNavigator

Java参考错误

奇怪的参考错误

参考错误| javascript

ThreadStart参考错误

QML参考错误

未捕获的参考错误:即使代码看起来都很好,也没有为.js定义$

ACF 谷歌地图有时无法正确加载,抛出“未捕获的参考错误:谷歌未定义”

带有Webpack的resolve.root选项的同构React

Nativescript - 参考错误:FIRAuth

FileUpload Null参考错误

Excel中的参考错误

带有React-Bootstrap的Webpack,出现许多“未找到模块”错误

React Map函数创建带有错误参数的<Redirect>

带有路线错误的React-Semantic-UI

带有React的ESLint会给出“ no-unused-vars”错误

带有 React 的 Typescript - 通过 LI 元素循环的 TS 错误

试图显示带有422错误的JSON Rails React

带有参数的React Router URL引发错误