Ich habe das Haupt-Tutorial auf Webpack verfolgt und ich habe den Server in Betrieb genommen. Wenn ich Dateien ändere, wird es beim Speichern aktualisiert, alles ist gut. Allerdings habe ich dann React eingeführt und alles ging schief.Webpack funktioniert nicht, wenn React eingeführt wird
Erstens, erhalte ich diesen Fehler im Browser:
Unexpected token <
You may need an appropriate loader to handle this file type.
Dies zeigt die Linie 4 in meiner entry.js Datei:
var CommentBox = React.createClass({
render: function() {
return (
<div className="commentBox">
Hello, world! I am a CommentBox.
</div>
);
}
});
ReactDOM.render(
<CommentBox />,
document.getElementById('content')
);
Dies ist index.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<div id ="content"></div>
<script type="text/javascript" src="bundle.js" charset="utf-8"></script>
</body>
</html>
webpack.config.js:
module.exports = {
entry: "./entry.js",
output: {
path: __dirname,
filename: "bundle.js"
},
module: {
loaders: [
{
test: /\.jsx?$/,
loader: 'jsx-loader?insertPragma=React.DOM&harmony'
}
]
},
externals: {
'react': 'React'
},
resolve: {
extensions: ['', '.js', '.jsx']
}
};
Wenn ich die entry.js
Datei ändern enthalten nur:
document.write(require("./content.js"));
Es produziert, was ich habe zur Zeit in der content.js Datei:
module.exports = "this is working";
So also ist es etwas zu tun mit reagieren/jsx etc. Hat jemand irgendwelche Lösungen dafür? Ich habe andere Leute online mit dieser Ausgabe gesehen, aber die Lösungen, die ich gegeben habe, haben für mich bisher nicht funktioniert.
Welche Version von react und babel verwenden Sie? Beide hatten Änderungen, die die meisten alten Tutorials unterbrechen. Bitte verlinke auf das Tutorial. – Yannick
Sie möchten wahrscheinlich babel-loader anstelle von jsx-loader https://github.com/babel/babel-loader – wgcrouch