【问题标题】:Webpack is not parsing the jsx fileWebpack 不解析 jsx 文件
【发布时间】:2017-04-17 04:23:52
【问题描述】:

我有这个 jsx 文件。 //反应代码

import React from 'react';
import {render} from 'react-dom';

class App extends React.Component {
  render () {
    return <p> Hello React!</p>;
  }
}

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

and this is my webpack.confg.js file
//webpack config   

module.exports = {
  entry: __dirname + '/assets/app/components/test/test.jsx',
  output: {
    path: __dirname,
    filename: '/assets/app/components/test/test.min.js'
  },
  module: {
    loaders: [
      {
        test: '/\.jsx?/',
        exclude: '/node_modules/',
        loader: 'babel',
        query: {
          presets:['es2015', 'react']
        }
      }
    ]
  }
}

在运行 web 包时,它给出的错误为

/assets/app/components/test/test.jsx 模块解析失败:/Users/joseph.antony/workspace/sloop/assets/app/components/test/test.jsx 意外令牌 (6:11) 您可能需要适当的加载程序来处理此文件类型。 SyntaxError: Unexpected token (6:11)

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

    这是我用于我创建的所有 React 项目的模块配置。你需要npm install我在下面指定的包。

    module: {
            loaders: [
                {
                    // Only run `.js` and `.jsx` files through Babel
                    test: /\.jsx?$/,
                    exclude: __dirname + "/node_modules",
                    loader: require.resolve("babel-loader"),
                    query: {
                        presets: [
                            require.resolve('babel-preset-es2015'),
                            require.resolve('babel-preset-stage-0'),
                            require.resolve('babel-preset-react')
                        ]
                    }
                }
            ]
        },
    

    【讨论】:

      【解决方案2】:

      我很确定您的问题是由于没有正确表达正则表达式测试:

      这个:

      test: '/\.jsx?/',
      exclude: '/node_modules/',
      

      应该是:

      test: /\.jsx?/,
      exclude: /node_modules/,
      

      正则表达式文字不包含在字符串中。

      【讨论】:

      • 现在显示的问题是未知选项:direct.presets
      • 你也有 .babelrc 文件吗?
      • 是的,我确实在项目文件夹的根目录中有 .babelrc 文件
      • 尝试删除它(或删除文件内定义的预设)。
      • 您正在query 中定义预设。您需要在一个地方进行预设。通过同时拥有这两者,你会混淆 webpack。我更喜欢只使用 .babelrc 而不是在 webpack conf 中指定它们。
      猜你喜欢
      • 2016-08-15
      • 1970-01-01
      • 2016-02-04
      • 2017-06-09
      • 2016-12-15
      • 1970-01-01
      • 2019-07-07
      • 2016-12-18
      • 2019-11-15
      相关资源
      最近更新 更多