Webpack Error React & ES6 之前在 Babelify 下工作

Posted

技术标签:

【中文标题】Webpack Error React & ES6 之前在 Babelify 下工作【英文标题】:Webpack Error React & ES6 Previously working under Babelify 【发布时间】:2017-04-28 19:50:43 【问题描述】:

我尝试过从 babelify、watchify、browserify 迁移到 webpack、webpack server 和 babel。

我记得 6 个月前离开 webpack,因为尝试使用 aws-sdk 时它给了我类似的问题。

由于某种原因,每次构建时都会出现以下错误:

哈希:396f0bfb9d565b6f60f0 版本:webpack 1.14.0 时间:61ms [0] ./src/index.js 0 字节 [已构建] [失败]

./src/index.js 中的错误模块解析失败: C:\Users\james\Documents\hyre\src\index.js 意外令牌 (9:8) 你 可能需要适当的加载器来处理这种文件类型。语法错误: 意外令牌 (9:8) 在 Parser.pp$4.raise (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:2221:15) 在 Parser.pp.unexpected (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:603:10) 在 Parser.pp$3.parseExprAtom (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:1822:12) 在 Parser.pp$3.parseExprSubscripts (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:1715:21) 在 Parser.pp$3.parseMaybeUnary (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:1692:19) 在 Parser.pp$3.parseExprOps (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:1637:21) 在 Parser.pp$3.parseMaybeConditional (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:1620:21) 在 Parser.pp$3.parseMaybeAssign (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:1597:21) 在 Parser.pp$3.parseExprList (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:2165:22) 在 Parser.pp$3.parseSubscripts (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:1741:35) 在 Parser.pp$3.parseExprSubscripts (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:1718:17) 在 Parser.pp$3.parseMaybeUnary (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:1692:19) 在 Parser.pp$3.parseExprOps (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:1637:21) 在 Parser.pp$3.parseMaybeConditional (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:1620:21) 在 Parser.pp$3.parseMaybeAssign (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:1597:21) 在 Parser.pp$3.parseExpression (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:1573:21) 在 Parser.pp$1.parseStatement (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:727:47) 在 Parser.pp$1.parseTopLevel (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:638:25) 在 Parser.parse (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:516:17) 在 Object.parse (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\acorn\dist\acorn.js:3098:39) 在 Parser.parse (C:\Users\james\Documents\hyre\node_modules\webpack\lib\Parser.js:902:15) 在依赖项块。 (C:\Users\james\Documents\hyre\node_modules\webpack\lib\NormalModule.js:104:16) 在 DependenciesBlock.onModuleBuild (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:310:10) 在 nextLoader (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:275:25) 在 C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\webpack-core\lib\NormalModuleMixin.js:259:5 在 Storage.finished (C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:38:16) 在 C:\Users\james\Documents\hyre\node_modules\webpack\node_modules\enhanced-resolve\node_modules\graceful-fs\graceful-fs.js:78:16 在 FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:445:3)

我相信我已按要求进行了所有设置。 请查看我的文件:

webpack.config.js

module.exports = 
entry: './src/index.js',
  output: 
    path: __dirname + '/public/js',
    filename: 'bundle.js',
    resolve: 
      extensions: ['', '.js', '.jsx']
    ,
    module: 
    loaders: [
      
        test: /\.jsx?$/,
        loader: 'babel-loader',
        exclude: /node_modules/,
        query: 
          cacheDirectory: true,
          presets: ['react', 'es2015']
        
      
    ]
  
  

package.json


  "name": "hyre",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": 
    "build": "webpack",
    "test": "echo \"Error: no test specified\" && exit 1"
  ,
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": 
    "aws-sdk": "^2.4.4",
    "babelify": "^7.3.0",
    "browserify": "^13.0.1",
    "is-my-date-valid": "^0.1.0",
    "lodash": "^4.17.2",
    "moment": "^2.14.1",
    "react": "^15.1.0",
    "react-date-picker": "^5.3.26",
    "react-datepicker": "^0.28.1",
    "react-dom": "^15.1.0",
    "watchify": "^3.7.0"
  ,
  "devDependencies": 
    "babel-core": "^6.10.4",
    "babel-loader": "^6.2.4",
    "babel-preset-es2015": "^6.18.0",
    "babel-preset-react": "^6.11.1",
    "react-hot-loader": "^1.3.0",
    "transform-loader": "^0.2.3",
    "webpack": "^1.14.0"
  

index.js

/*let message = 'Loaded----->';
console.log(message);*/

import React from 'react';
import  render  from 'react-dom';
import App from './components/app';

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

【问题讨论】:

【参考方案1】:

你的 webpack 配置有误。 resolvemoduleloaders 属性不应嵌套在 output 属性内,它们应处于同一级别。这是有效的配置:

module.exports = 
  entry: './src/index.js',
  output: 
    path: __dirname + '/public/js',
    filename: 'bundle.js'
  ,
  resolve: 
    extensions: ['', '.js', '.jsx']
  ,
  module: 
    loaders: [
      
        test: /\.jsx?$/,
        loader: 'babel-loader',
        exclude: /node_modules/,
        query: 
          presets: ['react', 'es2015']
        
      
    ]
  

【讨论】:

没错,但没有运气。 同样的错误?您是否重新启动了 wepback?仅手表重新加载是不够的。 是的,同样的错误。我在设置时正在手动构建。 尝试删除cacheDirectory选项 将您的预设顺序更改为['es2015', 'react']。检查这个***.com/questions/36392826/…

以上是关于Webpack Error React & ES6 之前在 Babelify 下工作的主要内容,如果未能解决你的问题,请参考以下文章

实战采用React&Webpack 开发树形UI组件!

使用 Webpack、SASS 和 React 在“main.scss”上出现错误“找不到模块”

React如何通过Webpack优雅的接入serviceWorker的成熟方案workBox && Google Analytics

webpack--react配置

react mobx webpack 使用案例

菜鸟webpack/react/redux/react-router/ts一步步搭建架子