[英]Add custom vanilla javascript functions to webpack-encore workflow configuration
[英]Arrow functions in class throw error with webpack-encore
我在我的symfony項目中使用webpack-encore來編譯我的reactjs項目。 到目前為止,我已經使用了基本的webpack.config.js
設置,該設置在啟用時應該可以使用webpack.config.js
工作:
// webpack.config.js
// ...
Encore
// ...
.enableReactPreset()
;
我繼續並添加了babel配置(我認為不需要),希望它可以解決問題,但是並沒有:
.configureBabel(function(babelConfig) {
// add additional presets
babelConfig.presets.push('es2017');
})
這是一個應該起作用的示例,但無法編譯,並引發以下錯誤:
語法錯誤:意外令牌
import React, {Component} from 'react';
//This works
const someExteriorHandler = () => {};
export default class Example extends Component {
//error bad syntax, points specifically at the equal sign.
someHandler = () => {
}
render(){return(<h1>This is a test</h1>)}
}
如何在webpack-encore中獲取babel編譯器以在javascript類中編譯Arrow函數?
這個問題解決了 。
在類中分配箭頭功能不屬於ES6。 它是即將發布的ES版本的提案草案的一部分。 Babel可以轉譯它,但是您需要在babelrc文件中啟用此轉換。 未配置babel時,Encore隨附的默認babel配置不會啟用實驗功能的轉換。
yarn add --dev babel-plugin-transform-class-properties babel-plugin-transform-object-rest-spread
.configureBabel(function(babelConfig) {
//This is needed.
babelConfig.plugins = ["transform-object-rest-spread","transform-class-properties"]
})
它現在應該可以編譯,同時具有所有JSX功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.