2017-11-06 5 views
0

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はデコレータが含まれていませんが、「バベル・プラグイン・変換・デコレーター・レガシー」はありません。

答えて

0

「ES7」は、ES6には含まれていない提案書(現時点ではES.next)を口頭で参照していたが、ES2016にも参照されていたため、あいまいで技術的に不適切な用語です。

パッケージの説明refers to ES2016。デコレータは既存の標準の一部ではなく、a plugin経由でBabelでサポートされています。

The packageは、それがユーザー.babelrcファイルを尊重することを説明し、それはpresetsセクションでtransform-decoratorstransform-decorators-legacyが含まれている必要があり、それぞれのバベルプラグインをインストールする必要があります。

+0

返信いただきありがとうございます! 私は既にこの問題を解決するためのバベル用のプラグインがあることを知っていましたが、私はその断片をまとめて入れることができませんでした。 私はwebpackをセットアップし、自分自身をbabelし、電子prebuiltコンパイルを削除しました。 これは長期的には同じ結果ですが、質問には答えませんので、正しい答えとしてマークします – Reijo

関連する問題