2016-07-23 2 views
1

Я забивал головой с этим в течение последних двух часов, и я все еще не могу решить проблему. Я думаю, что я пробовал почти все реализации там, но я до сих пор не получаю работу.Невозможно проанализировать файл при использовании webpack, реагировать, реагировать

ERROR сообщение

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> 
     ); 
    } 
} 

Спасибо за помощь

ответ

2

Вам необходимо изменить entry от [ 'main.js' ] к ['Main.js'], потому что вы упомянули о Main.js, который имеет первая буква в верхнем регистре., также как я вижу из вашего webpack config, ваше приложение код находится внутри app папки и нет какого-либо не говоря уже о src папки, поэтому вам нужно изменить RegExp от /src\/.+.js$/ к /\.js$/

{ 
    test: /\.js$/, 
    exclude: /node_modules/, 
    loaders: ['babel', 'babel-loader?presets[]=react,presets[]=es2015'] 
} 
+1

Спасибо @Alexander T, вещи с 'основными, js' была опечаткой. То, что действительно решило проблему, заключалось в изменении 'test:/\. Js $ /,'. Я думал, что это только для тестовых файлов? Еще раз спасибо, я забивал себе голову в течение последних +3 часов – intercoder

Смежные вопросы