javascript - 语法错误 : Unexpected token < in React. js

标签 javascript reactjs

从 0.11.0 升级到 0.13.3 后出现此错误。可能出什么问题了? 我无法理解发生了什么事,因为在一切正常之前就已经注释了 jsx。

/**
 * @jsx React.DOM
 */
'use strict';
// config
var config = require('./config');
// dependencies
var React = require('react');
var ReactAsync = require('react-async');
// custom components
var Head = require('./modules/components/head');
// Main page component (this is asynchronous)
var NotFound = React.createFactory(
    React.createClass({
        displayName: 'NotFoundApp',
        mixins: [ReactAsync.Mixin],
        getInitialStateAsync: function (callback) {
            callback(null, this.props); // set the input props as state (equal to 'return this.props' in getInitialState, but async)
        },

        render: function() {
            return (
                <html>
                    //here is error
                </html>
            );
        }
    })
);
module.exports = NotFound;
if (typeof window !== 'undefined') {
    // enable the react developer tools when developing (loads another 450k into the DOM..)
    if (config.environment == 'development') {
        window.React = require('react');
    }
    window.onload = function () {
        React.renderComponent(NotFound(), document);
    }
}

这是 browserify 的 gulp 任务:

var browserify = require('browserify');
var streamify = require('gulp-streamify');
var NopStream = require('../util/no-op-stream');
var uglify = require('gulp-uglify');
var gulp = require('gulp');
var handleErrors = require('../util/handle-errors');
var bundleLogger = require('../util/bundle-logger');
var source = require('vinyl-source-stream');
var watchify = require('watchify');
var gutil = require('gulp-util');

var production = process.env.NODE_ENV === 'production';

function createBundles(bundles, callback) {
    var bundleQueue = bundles.length;

    function reportFinished(bundleOptions) {
        bundleLogger.end(bundleOptions.output);

        if (bundleQueue) {
            bundleQueue--;
            if (bundleQueue === 0) {
                callback();
            }
        }
    }

    function createSingleBundle(bundler, bundleOptions) {
        bundleLogger.start(bundleOptions.output);

        bundler.bundle()
            .on('error', handleErrors)
            .pipe(source(bundleOptions.output))
            .pipe(production ? streamify(uglify()) : (new NopStream()))
            .pipe(gulp.dest(bundleOptions.destination))
            .on('end', function() {
                reportFinished(bundleOptions);
            });
    }

    bundles.forEach(function(bundleOptions) {
        var bundler = browserify({
            debug: !production,
            cache: {},
            packageCache: {},
            fullPaths: true,
            entries: bundleOptions.input,
            extensions: bundleOptions.extensions
        });

        if (global.isWatching) {
            bundler = watchify(bundler);

            // Rebundle on update
            bundler.on('update', function() {
                createSingleBundle(bundler, bundleOptions);
            });
        }

        createSingleBundle(bundler, bundleOptions);
    });
}

gulp.task('browserify', function(callback) {
    if(global.isWatching) {
        gutil.log('Watchify is enabled!');
    }

    createBundles([{
        input: ['./client/javascript/app.js'],
        output: 'app.js',
        destination: './client/public/javascript/'
    }, {
        input: ['./client/javascript/article.js'],
        output: 'article.js',
        destination: './client/public/javascript/'
    }, {
        input: ['./client/javascript/404.js'],
        output: '404.js',
        destination: './client/public/javascript/'
    }], callback);
});

最佳答案

尝试将 type="text/babel" 添加到入口文件中的脚本文件

像这样<script src="example.js" type="text/babel"></script>

关于javascript - 语法错误 : Unexpected token < in React. js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30805484/

相关文章:

javascript - 如何将javascript应用于html文档中的多个元素?

javascript - 考虑到未知 Javascript 引擎的代码,哪些考虑因素对执行速度和内存节省影响最大?

javascript - 正则表达式捕获所有内容,而不仅仅是括号中的 "Wildcard"- 如何修复它?

javascript - 如何修复导航栏内的下拉按钮 - Bootstrap ?

javascript - React Native : . map() 函数在渲染中不显示任何内容

javascript - react 映射函数未返回的无状态组件

javascript - React.js - 动态添加 div

javascript - 使用 Redux 在 Store 上创建 initialState

javascript - 返回此返回未定义

javascript - innerHTML 外部元素加载完成后的回调