2017-02-28 46 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',而不是`裝載機:「巴別塔裝載機」這是同樣的

相關問題