2016-03-16 37 views
0

我建立使用ReactBootstrap的应用程序。我无法弄清楚如何将我的代码放入单独的文件中,所以我开始使用require.js。我开始了一个单独的项目,作为一个操场来试验需要我更大项目中所需的各种模块。怎样才能作出反应,引导加载不破坏反应-DOM?

我已经能够得到反应(反应和-DOM)对自己的工作。然而,当我执行需要()的反应,引导,我得到以下错误:

GET http://localhost:5000/static/react-dom.js    require.js:1952 
Uncaught Error: Script error for "react-dom"    require.js:165 

请注意,上面的地址是不是反应-DOM的正确位置。我不知道为什么它在那个地方寻找它。这可以在我的config.js文件,准确地描述了我有关JavaScript的必要前置模块的位置可以看出:

requirejs.config({ 
    baseUrl: "/static", 
    paths: { 
    jquery: "vendors/jquery/dist/jquery", 
    jsx: "vendors/jsx-requirejs-plugins/js/jsx", 
    JSXTransformer: "vendors/jsx-requirejs-plugins/js/JSXTransformer", 
    react: "vendors/react/react-with-addons", 
    react_dom: "vendors/react/react-dom", 
    bootstrap: "vendors/bootstrap/dist/js/bootstrap", 
    react_bootstrap: "vendors/react-bootstrap/react-bootstrap", 
    text: "vendors/requirejs-text/text", 
    }, 
    jsx: { 
    fileExtension: ".js" 
    }, 
}); 

在这一点上,我甚至没有渲染任何感兴趣的(在盘算的名字这一点)。当我上面的代码更改为

requirejs(
    ["jquery", "react", "react_dom", "react_bootstrap"], 
    function($, React, ReactDOM) { 
}); 

没有错误:

requirejs(
    ["jquery", "react", "react_dom"], 
    function($, React, ReactDOM) { 
}); 

添加引导到列表中并没有帮助这可以通过看我的,而空app.js文件中可以看出。还值得一提的是,jQuery是被正确地从http://localhost:5000/static/vendors/jquery/dist/jquery.js

对于上下文加载,我的index.html文件看起来如下。

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
</head> 
<body> 
    <script src="/static/vendors/requirejs/require.js"></script> 
    <script src="/static/config.js"></script> 
    <script src="/static/app.js"></script> 
</body> 
</html> 

总结:我得到一个错误与特定的图书馆 - 特别是,它正在寻找在错误的地方 - 但这个错误只显示了当另外需要作出反应的自举。

我错过了什么?谢谢!

回答

0

的问题是,我把命名的自由,config.js内,反应-DOM为“react_dom”,主要是要解决的事实,短线不无引号包围他们的工作。 react-bootstrap然后特意要求反应,这就是为什么错误的URL被击中的原因。

用正确的命名方案展望未来,一切正常smashingly!