Webpack und Reagieren — Unerwartete token

Ich bin neu zu Reagieren und Webpack. Ich bin einrichten ist mein erstes Projekt, wenn ich versuche, führen Sie das webpack-dev-server meinen code nicht kompilieren!

Update
Antwort unten richtig ist. Ich brauchte, um hinzuzufügen 'react' zu babel loader-Vorgaben. Sie können die vollständige Quelle für das Projekt hier: https://github.com/cleechtech/redux-todo

Fehler:

$ webpack-dev-server             
http://localhost:8080/webpack-dev-server/
webpack result is served from /
content is served from ./dist
Hash: d437a155a1da4cdfeeeb
Version: webpack 1.12.14
Time: 5938ms
    Asset     Size  Chunks             Chunk Names
bundle.js  1.51 kB       0  [emitted]  main
chunk    {0} bundle.js (main) 28 bytes [rendered]
    [0] multi main 28 bytes {0} [built] [1 error]

ERROR in ./src/index.js
Module build failed: SyntaxError: /Users/connorleech/Projects/redux-todo/src/index.js: Unexpected token (7:16)
console.log(ReactDOM);

ReactDOM.render(<App />,document.getElementById('root'));

src/index.js:

var react = require('react');
var ReactDOM = require('react-dom');
var App = require('./components/App');

console.log(ReactDOM);

ReactDOM.render(<App />,document.getElementById('root'));

src/components/App.js

var React = require('react');

var App = React.createClass({
  render: function() {
    return (
        <div>
            <h1>I am app!</h1>
        </div>
    );
  }
});

console.log(App);

module.exports = App;

dist/index.html

<!doctype html>
<head>
    <title>Redux todo</title>
</head>
<body>
    <h1>Hello world</h1>

    <div id='root'></div>
    <script src='bundle.js'></script>
</body>

Und schließlich ist hier mein webpack-Konfiguration und-Paket.json:

module.exports = {
  //starting point
  entry: [
    './src/index.js'
  ],
  module: {
    loaders: [
      {
        test: /\.js?$/,
        exclude: /(node_modules|bower_components)/,
        loader: 'babel', //'babel-loader' is also a legal name to reference
        query: {
          presets: ['es2015']
        }
      }
    ]
  },
  resolve: {
    extensions: ['', '.js', '.jsx']
  },
  //create bundle.js file
  output: {
    path: __dirname + '/dist',
    publicPath: '/',
    filename: 'bundle.js'
  },
  devServer: {
    contentBase: './dist'
  }
};

Paket.json

{
  "name": "redux-todo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/cleechtech/redux-todo.git"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/cleechtech/redux-todo/issues"
  },
  "homepage": "https://github.com/cleechtech/redux-todo#readme",
  "dependencies": {
    "react": "^0.14.8",
    "react-dom": "^0.14.8",
    "react-redux": "^4.4.1",
    "redux": "^3.3.1"
  },
  "devDependencies": {
    "babel-core": "^6.7.4",
    "babel-loader": "^6.2.4",
    "babel-preset-es2015": "^6.6.0",
    "webpack": "^1.12.14"
  }
}
InformationsquelleAutor Connor Leech | 2016-04-04
Schreibe einen Kommentar