аз имам react
и react-dom
инсталирани и внесени чрез System.config
долу, но все още получавам тази грешка по-долу:
Неподдържан (в обещание) Грешка: Неочаквано символично <(...)
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>ES2015 Module Example</title>
</head>
<body>
<script src="lib/system.js"></script>
<script>
System.config({
"baseURL": "src",
// Set defaultJSExtensions to true so you don"t have to use .js extension when importing the es6 module.
"defaultJSExtensions": true,
// "plugin-babel" or "traceur" or "typescript"
transpiler: "traceur",
map: {
"react": "./node_modules/react/dist/react.min.js",
"react-dom": "./node_modules/react-dom/dist/react-dom.min.js",
"traceur": "./lib/traceur.min.js",
"plugin-babel": "./lib/plugin-babel/plugin-babel.js",
"systemjs-babel-build": "./lib/plugin-babel/systemjs-babel-browser.js"
},
});
System.import("app.js");
</script>
</body>
<div id="example"></div>
</html>
app.js:
import React from "react";
import ReactDOM from "react-dom";
var Hello = React.createClass({
render: function() {
return <h1>Hello {this.props.name}</h1>;
}
});
ReactDOM.render(
<Hello name="World" />,
document.getElementById("example")
);
Какви други идеи трябва да конфигурирам?
Отговори:
0 за отговор № 1браузърът е най-доброто решение (за производство и развитие) - за мен:
npm install --save-dev babel-preset-react
преглъщане:
var gulp = require("gulp");
var browserify = require("browserify");
var babelify = require("babelify");
var source = require("vinyl-source-stream");
var buffer = require("vinyl-buffer");
var uglify = require("gulp-uglify");
var sourcemaps = require("gulp-sourcemaps");
var livereload = require("gulp-livereload");
gulp.task("build", function() {
// app.js is your main JS file with all your module inclusions
return browserify({entries: "src/app.js", debug: true})
.transform("babelify", { presets: ["es2015", "react"] })
.bundle()
.pipe(source("compile.min.js"))
.pipe(buffer())
.pipe(sourcemaps.init())
.pipe(uglify())
.pipe(sourcemaps.write("./maps"))
.pipe(gulp.dest("js"))
.pipe(livereload());
});
gulp.task("default", ["build"]);
Що се отнася до непроизводството със SystemJS (болезнено бавно):
<!DOCTYPE html>
<script src="https://jspm.io/system@0.19.js"></script>
<script>
System.config({
transpiler: "babel",
babelOptions: {}
});
System.import("./main.js");
</script>
Все още можете да използвате глуп за развитие. Просто добавете това към глипфала:
gulp.task("watch", ["build"], function () {
livereload.listen();
gulp.watch("js/*.js", ["build"]);
});
gulp.task("default", ["watch"]);
Това ви спестява от други досадни работни процеси като изброени тук.
-1 за отговор № 2
Unexpected token <
обикновено се появява в html5 приложения, когато сървърът е конфигуриран да връща съдържанието на index.html
вместо 404 страници (така натискането на клавиша f5 върху динамичното маршрутизиране продължава да работи). Проверете след това мрежовия панел в конзолата за програмисти на браузърите и вижте кой js файл бе доставен с html съдържание.