使用webpack.config和babelrc文件传播对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用webpack.config和babelrc文件传播对象相关的知识,希望对你有一定的参考价值。
我试图让对象传播运算符与我的反应项目一起工作。它出现了语法错误:
我尝试过使用babel-plugin-transform-object-rest-spread
,正如babel docs所描述的那样。
经过一些研究后,我还尝试了针对babel的GitHub问题中描述的配置:
请参阅下面的.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
}
}
任何人都可以帮我尝试找出使用对象扩展运算符的正确配置吗?
答案
你在.babelrc
和webpack.config
中列出你的预设,尝试将它们全部移动到其中一个,即只有.babelrc
:
{
"presets": ["es2015", "react"],
"plugins": ["transform-object-rest-spread"]
}
编辑:而不是使用现已被弃用的es2015
预设安装env
预设npm install --save-dev babel-preset-env
和在.babelrc
用es2015
替换env
。
编辑2:你正在使用的…
使用了一些不受支持的字符编码,你必须从某个搞砸了编码的地方粘贴它,用...
替换它。
以上是关于使用webpack.config和babelrc文件传播对象的主要内容,如果未能解决你的问题,请参考以下文章
create-react-app项目所遇问题总结之antd引入和样式不生效问题解决
解决Webpack中提示syntax 'classProperties' isn't currently enabled的错误