2017-02-28 44 views
1

我有以下代码(ES6传播属性):您可能需要适当的加载程序来处理此类文件的错误

return {...state, name: action.payload}; 

抛出的错误是:您可能需要适当的加载程序来处理这个文件类型。

的package.json

enter image description here

还有什么我需要为了使这项工作进行安装。所有其他ES6正在工作,但传播属性不是。

webpack.config.js

enter image description here

+0

你可以分享你的WebPack配置那里,你会看到。?可能需要的加载器 –

+0

所以package.json是不够的......我的webpack.config.js中没有任何加载器我现在将它们加入 –

回答

1

要使用ecmascript-6你需要(1)添加.babelrc文件与以下预置

{ 
    "presets": [ "es2015" ] 
} 

es2015是你所需要的特定的一个。

然后(2)配置您的WebPack包括

module.exports = { 
    ..., 
    loaders : [ 
    { test: /\.js$/, exclude: /(node_modules)/, loader: 'babel-loader' } 
    ] 
} 
+0

_“要使用ecmascript-6扩展运算符,您需要...“当然,但在OP的示例中没有ES6扩展语法 – zeroflagL

+0

@zeroflagL感谢通知我无法找到正确的方式调用表达式并使用”spread“但是,我发现我的使用在技术上是不正确的。另外,我无法找到调用此特定功能的正确方法。你能帮我吗? –

+0

@zeroflagL我也想知道它的正确技术术语......它在这里说这是一个传播运算符:http://redux.js.org/docs/basics/Reducers.html#handling-actions –

2

你需要有配置通天装载机的JS文件transpile

的WebPack配置片断:

{ 
    test: /\.js$/, 
    exclude: /node_modules/, 
    use: [ 
     'babel-loader' 
    ] 
    } 

内部模块规则。

而且在项目的home目录通过NPM添加.babelrc文件下面的内容

{ 
    "presets" : [ 
    "latest" 
    ] 
} 
1

安装装载机是不够的。你必须在你的webpack中配置这个装载器。以上你webpack.config.js

loaders: [ 
    { 
     test: /\.js$/, 
     exclude: /(node_modules|bower_components)/, 
     loader: 'babel-loader', 
     query: { 
     presets: ['es2015'] 
     } 
    } 
    ] 

Using loaders in webpack

代码

添加以下意味着,无论何时它会找到匹配\.js$模式(文件是.js结尾)的任何文件,巴贝尔型装载机将用过的。 (您已经安装了通天装载机到你的依赖

您还可以使用loader: 'babel',而不是`装载机:“巴别塔装载机”这是同样的

相关问题