使用webpack.config和babelrc文件传播对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用webpack.config和babelrc文件传播对象相关的知识,希望对你有一定的参考价值。

我试图让对象传播运算符与我的反应项目一起工作。它出现了语法错误:

spread operator error

我尝试过使用babel-plugin-transform-object-rest-spread,正如babel docs所描述的那样。

经过一些研究后,我还尝试了针对babel的GitHub问题中描述的配置:babelrc config for spread operator

请参阅下面的.babelrc文件:

{
    "presets": ["es2015"],
    "plugins": ["transform-object-rest-spread"],
    "sourceMaps": true,
    "retainLines": true
}

我的webpack.config文件如下:

const path = require('path');

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'public', 'js'),
    publicPath: '/'
  },
  devtool: 'source-map',
  module: {
    rules: [
      {
        test: /.jsx?$/,
        include: path.resolve(__dirname, 'src'),
        loader: 'babel-loader',
        options: {
          presets: ['react', 'es2015']
        }
      },
      {
        test: /.css$/,
        use: ['style-loader', 'css-loader']
      },
      {
        test:/.scss$/,
        use: [{
                loader: 'style-loader'
            }, {
                loader: 'css-loader'
                }, {
                loader: 'sass-loader', options: {
                    sourceMap: true
                }
            }]
      },
      {
        test: /.(png|jpg|jpeg|gif|svg|woff|woff2|eot|ttf)(?v=d+.d+.d+)?$/,
        loader: 'url-loader'
      }
    ]
  },
  devServer: {
   historyApiFallback: true,
   contentBase: path.join(__dirname, 'public'),
   publicPath: '/js/',
   port: 3000
 }
};

我使用spread运算符的代码是:

import * as types from '../types/types'; 

const initialState ={
    mesage:''
}

export default function doodlesReducer (state = initialState, action) {
    switch(action.type) {
        case 'SET_MESSAGE' :
        return {…state, message: action.payload.message}
        default :
        return state
        }
}

任何人都可以帮我尝试找出使用对象扩展运算符的正确配置吗?

答案

你在.babelrcwebpack.config中列出你的预设,尝试将它们全部移动到其中一个,即只有.babelrc

{
    "presets": ["es2015", "react"],
    "plugins": ["transform-object-rest-spread"]
}

编辑:而不是使用现已被弃用的es2015预设安装env预设npm install --save-dev babel-preset-env和在.babelrces2015替换env

编辑2:你正在使用的使用了一些不受支持的字符编码,你必须从某个搞砸了编码的地方粘贴它,用...替换它。

以上是关于使用webpack.config和babelrc文件传播对象的主要内容,如果未能解决你的问题,请参考以下文章

Webpack5资源解析

Webpack5资源解析

Webpack5资源解析

webpack配置,这一篇就够了

create-react-app项目所遇问题总结之antd引入和样式不生效问题解决

解决Webpack中提示syntax 'classProperties' isn't currently enabled的错误