electron、react、reduxプロジェクトでデコレータを使用しようとすると、厄介な構文エラーが発生しました。電子プリコンパイルコンパイルでデコレータを使用するには?
Failed to compile B:/Projekte/sketches/electron-react-get-
started/app/pages/Layout.js: B:/Projekte/sketches/electron-react-get-
started/app/pages/Layout.js: Unexpected token (7:0)
SyntaxError: B:/Projekte/sketches/electron-react-get-
started/app/pages/Layout.js: Unexpected token (7:0)
5 | import {fetchUsers} from "../actions/userActions";
6 |
> 7 | @connect((store) => {
|^
8 | return {
9 | users: store.users
10 | }
at Parser.pp$5.raise (B:\Projekte\sketches\electron-react-get-
started\node_modules\babylon\lib\index.js:4454:13)
at Parser.pp.unexpected (B:\Projekte\sketches\electron-react-get-
started\node_modules\babylon\lib\index.js:1761:8)
at Parser.pp$1.parseDecorator (B:\Projekte\sketches\electron-react-get-
started\node_modules\babylon\lib\index.js:1939:10)
at Parser.pp$1.parseDecorators (B:\Projekte\sketches\electron-react-get-
started\node_modules\babylon\lib\index.js:1924:26)
at Parser.pp$1.parseStatement (B:\Projekte\sketches\electron-react-get-
started\node_modules\babylon\lib\index.js:1818:10)
at Parser.parseStatement (B:\Projekte\sketches\electron-react-get-
started\node_modules\babylon\lib\index.js:5910:22)
at Parser.pp$1.parseBlockBody (B:\Projekte\sketches\electron-react-get-
started\node_modules\babylon\lib\index.js:2268:21)
at Parser.pp$1.parseTopLevel (B:\Projekte\sketches\electron-react-get-
started\node_modules\babylon\lib\index.js:1778:8)
at Parser.parse (B:\Projekte\sketches\electron-react-get-
started\node_modules\babylon\lib\index.js:1673:17)
at parse (B:\Projekte\sketches\electron-react-get-
started\node_modules\babylon\lib\index.js:7305:37)
私は質問で述べたように、私はコンパイルのものは、「電子ビルド済みのコンパイル」パッケージトラフ実行します。これは便利になり、今まではうまくいった。
このパッケージのnpmページには、コンパイルに「電子コンパイル」の権限があると言われています。 github pageに記載されているように、JS6/ES7(Babel経由)の電子コンパイルは となりますが、ES6または少なくともES7にこの機能が付いているので、なぜこの「デコレータ」問題に遭遇するのでしょうか。 編集を参照してください
このエラーを解決するには、提案がありますか? Electron-prebuilt-compileでwebpack.configを設定することはできません。 自分でwebpackを設定する必要がありますか?私がそうするならば、それをどのように電子と組み合わせるのだろうか?
編集
estusは彼の答えで述べたように:ES6はデコレータが含まれていませんが、「バベル・プラグイン・変換・デコレーター・レガシー」はありません。
返信いただきありがとうございます! 私は既にこの問題を解決するためのバベル用のプラグインがあることを知っていましたが、私はその断片をまとめて入れることができませんでした。 私はwebpackをセットアップし、自分自身をbabelし、電子prebuiltコンパイルを削除しました。 これは長期的には同じ結果ですが、質問には答えませんので、正しい答えとしてマークします – Reijo