将脚本类型更改为" text / babel"使用requireJS

时间:2016-02-06 17:24:00

标签: reactjs requirejs

我正在使用requireJS来加载React组件,但是我收到了错误" Uncaught SyntaxError:Unexpected token<"因为该文件的脚本类型是" text / javascript"而不是" text / babel"。为了解决这个问题,我尝试按照requireJS docsexplained in this question的说明设置scriptType,但是我无法使其工作或找到如何使其工作的好例子。 / p>

requireConfig.js:

requirejs.config({
    baseUrl: 'scripts/',
    paths:
    {
        jquery: 'jquery-1.9.0',
        react: 'libs/build/react',
        reactdom: 'libs/build/react-dom',
        browser: '//cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min',
        inputWindow: 'inputWindow/inputWindow'
    },
    scriptType: {
        'inputWindow': "text/babel"
     }
});

define(function (require) {
    var InputWindow = require('inputWindow');

    InputWindow.initialize();


});

inputWindow.js:

define(function(require){

    var React = require('react');
    var ReactDOM = require('reactdom');

    var InputWindow = React.createClass({

        render: function(){
            return(<div>
                {this.props.message}
            </div>)     
        }

    });

    function initialize(){
        ReactDOM.render(<InputWindow message="Hello World!"/>, document.getElementById('inputWindowDiv'))
    }

    return {
        initialize: initialize,
    }
})

当我使用

部分配置requireConfig.js时
scriptType:{
    'inputWindow':'text/babel'
}

然后将文件inputWindow.js加载到带有标记

的index.html中
type="[Object Object]"

直到requireJS超时。

screen capture of inputWindow.js loaded with type=[Object Object]

1 个答案:

答案 0 :(得分:0)

而不是

scriptType: {
    'inputWindow': "text/babel"
}

scriptType: 'text/babel'

它应该工作。现在你正在尝试对一个对象进行字符串化,所以难怪它不起作用。 ;)