【问题标题】:Webpack throws error about jsx componentWebpack 抛出关于 jsx 组件的错误
【发布时间】:2017-08-07 16:57:14
【问题描述】:

我有以下 jsx 组件:

import React, { Component } from 'react';

class App extends Component {
    render () {
        return (
            <div className="app">
                <h2>Welcome to React</h2>
            </div>
        )
    }
}

export default App;

还有我的 webpack 文件:

const path = require('path');
const webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin');

module.exports = {
    context: path.resolve(__dirname, './src'),
    entry: {
        app: './index.jsx'
    },
    output: {
        filename: '[name].bundle.js',
        path: path.resolve(__dirname, './dist/assets'),
        publicPath: '/assets',

    },
    devServer: {
        contentBase: path.resolve(__dirname, './src')
    },
    module: {
        rules: [
            {
              test: /\.jsx$/,
              exclude: [/node-modules/],
              use: [
                {
                  loader: "babel-loader",
                  options: { presets: ["es2015"] }
                }
              ]
            },
            {
                test: /\.css$/,
                use:  ExtractTextPlugin.extract({
                    use: [{
                        loader: 'css-loader',
                        options: { importLoaders: 1 },
                    }],
                }),
            },
            {
              test: /\.(sass|scss)$/,
              use: ["style-loader", "css-loader", "sass-loader"]
            }
        ]
    },
    resolve: {
        modules: [ 
            path.resolve(__dirname, './src'),
            'node_modules'
        ]
    },
    plugins: [
        new webpack.optimize.CommonsChunkPlugin({
            name: 'common'
        }),
        new ExtractTextPlugin({
            filename: '[name].bundle.css',
            allChunks: true
        })
    ]
}

但是当我跑步时:

 node_modules/.bin/webpack -d

我收到以下错误:

【问题讨论】:

标签: reactjs webpack jsx


【解决方案1】:

添加“babel-preset-react”

npm install babel-preset-react

并在 webpack.config.js 中为 babel-loader 添加“预设”选项

这是一个例子webpack.config.js

  module: {
    loaders: [{
      exclude: /node_modules/,
      loader: 'babel',
      query: {
        presets: ['react', 'es2015', 'stage-1']
      }
    }]
  }

【讨论】:

    猜你喜欢
    • 2016-09-23
    • 2023-03-04
    • 2021-12-20
    • 2021-08-13
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-17
    相关资源
    最近更新 更多