使用webpack时无法解析文件,做出反应,做出反应

时间:2016-07-23 18:25:58

标签: reactjs webpack react-router babeljs

在过去的几个小时里,我一直在用锤头敲打,我仍然无法解决问题。我想我已经尝试了几乎所有的实现,但我仍然没有让它工作。

错误消息

ERROR in ./app/main.js
Module parse failed: /Users/DS/Code/tryouts/react-boilerplate/app/main.js Unexpected token (5:16)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (5:16)
    at Parser.pp.raise (/Users/DS/Code/tryouts/react-boilerplate/node_modules/webpack/node_modules/acorn/dist/acorn.js:923:13)
    at Parser.pp.unexpected (/Users/DS/Code/tryouts/react-boilerplate/node_modules/webpack/node_modules/acorn/dist/acorn.js:1490:8)
    at Parser.pp.parseExprAtom (/Users/DS/Code/tryouts/react-boilerplate/node_modules/webpack/node_modules/acorn/dist/acorn.js:333:12)
    at Parser.pp.parseExprSubscripts (/Users/DS/Code/tryouts/react-boilerplate/node_modules/webpack/node_modules/acorn/dist/acorn.js:228:19)
    at Parser.pp.parseMaybeUnary (/Users/DS/Code/tryouts/react-boilerplate/node_modules/webpack/node_modules/acorn/dist/acorn.js:207:17)
    at Parser.pp.parseExprOps (/Users/DS/Code/tryouts/react-boilerplate/node_modules/webpack/node_modules/acorn/dist/acorn.js:154:19)
    at Parser.pp.parseMaybeConditional (/Users/DS/Code/tryouts/react-boilerplate/node_modules/webpack/node_modules/acorn/dist/acorn.js:136:19)
    at Parser.pp.parseMaybeAssign (/Users/DS/Code/tryouts/react-boilerplate/node_modules/webpack/node_modules/acorn/dist/acorn.js:112:19)
    at Parser.pp.parseExprList (/Users/DS/Code/tryouts/react-boilerplate/node_modules/webpack/node_modules/acorn/dist/acorn.js:660:23)
    at Parser.pp.parseSubscripts (/Users/DS/Code/tryouts/react-boilerplate/node_modules/webpack/node_modules/acorn/dist/acorn.js:252:29)

这是我的 webpack.config.js

var webpack = require("webpack");
    path = require('path');

var config = {
  context: path.join(__dirname, 'app'),
  entry: [
    './main.js',
  ],
  output: {
    path: path.join(__dirname, 'www'),
    filename: 'bundle.js',
  },
  resolve: {
    extensions: ['', '.js', '.jsx']
  },
  module: {
    loaders: [
      {
        test: /src\/.+.js$/,
        exclude: /node_modules/,
        // loaders: ['babel', 'babel-loader?presets[]=react,presets[]=es2015'],
        loaders: ['babel', 'babel-loader']
      }
    ],
  },
  resolveLoader: {
    root: [
      path.join(__dirname, 'node_modules'),
    ],
  },
  resolve: {
    root: [
      path.join(__dirname, 'node_modules')
    ],
  },
};
module.exports = config;

这是我的 package.json

{
  "name": "react-boilerplate",
  "version": "1.0.0",
  "description": "This is just a simple folder structure template to use for my `React` projects.",
  "keywords": [],
  "scripts": {
    "compile": "webpack",
    "start": "node server.js",
    "test": "jest"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/dantesolis/react-boilerplate.git"
  },
  "author": "D/S",
  "license": "MIT",
  "main": "index.js",
  "bugs": {
    "url": "https://github.com/dantesolis/react-boilerplate/issues"
  },
  "homepage": "https://github.com/dantesolis/react-boilerplate#readme",
  "devDependencies": {
    "babel": "^6.5.2",
    "babel-core": "^6.10.4",
    "babel-loader": "^6.2.4",
    "babel-preset-react": "^6.11.1",
    "jest-cli": "^13.2.3",
    "webpack": "^1.13.1"
  },
  "jest": {
    "scriptPreprocessor": "./tools/preprocessor.js",
    "unmockedModulePathPatterns": [
      "react"
    ],
    "testPathDirs": [
      "./src/",
      ""
    ]
  },
  "dependencies": {
    "babel-core": "^6.11.4",
    "babel-loader": "^6.2.4",
    "babel-preset-es2015": "^6.9.0",
    "babel-preset-react": "^6.11.1",
    "express": "^4.14.0",
    "react": "^15.2.1",
    "react-dom": "^15.2.1",
    "react-router": "^2.6.0",
    "webpack": "^1.13.1",
    "webpack-dev-middleware": "^1.6.1"
  }
}

Main.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

ReactDOM.render(<App />, document.getElementById('app')); <= OFFENDING LINE

App.js

import React from 'react';
import { Router, Route, Link, IndexRoute, hashHistory, browserHistory } from 'react-router';
import Counter from './Counter';

export default class App extends React.Component {
    render() {
        return (

            <div>
                <Counter />
            </div>
        );
    }
}

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

您需要将entry[ 'main.js' ]更改为['Main.js'],因为您提到的Main.js首字母为大写。我也从{{{ 1}} config,您的应用程序代码位于webpack文件夹内,并且没有提及app文件夹,因此您需要将srcRegExp更改为{{1} }}

/src\/.+.js$/
相关问题