2017-03-22 8 views
6

私はES6構文を使用するnpmパッケージblokusを書きました。create react appを使用し、ES6の依存関係を持つ

私はcreate-react-appを使用してblokusに依存するプロジェクトweb-blokusを開始しました。

npm startをエラーなしで実行し、私のブラウザにweb-blokusアプリを表示し、blokusパッケージのすべての機能を利用できます。

問題は、npm buildを実行しているときにUglifyJSエラーが発生することです。

static/js/main.8afd34e2.js from UglifyJs 
SyntaxError: Name expected [./~/blokus/blokus/blokus.js:3,0] 

UglifyJSがES6の依存関係(herehereスレッド数、関連する問題を)サポートしていないと知られている状況があります表示されます。しかし、私はこれらのスレッドだけでなく、いくつかの他のスレッドを読んで、私はかなり更新される予定のものと回避策として何をしているのかについてかなり混乱しました。

は、だから私は

1)したかったあなたはnpm buildに行く一度、あなたのアプリがどのES6の依存関係

2)人々がに何をしているか尋ねている場合)(create-react-appは、箱から出して動作しないことを確認します(UglifyJSのために何かを取り出す必要がありますか?)

create-react-appとES6が普及して以来、私は制限を誤解していると思います。この制限は議論され、知られている。

答えて

3

create-react-appまたはほとんどのビルドシステムでES6コードを使用することはできません。

npmパッケージでは、既存のツールと、それよりも小さい程度で古いノードのバージョンが原因でES6コードが生成されるべきではありません。そして、前npm run buildを行う

npm install --save-dev babel-core babel-cli babel-preset-latest 

.babelrc

{ 
    "presets": ["latest"] 
} 

package.json

"main": "./lib", 
    "scripts": { 
    "build": "babel src --out-dir lib" 
    } 

:ES6コードはsrcディレクトリにあると仮定すると、あなたのパッケージを設定するには

出版する。


「lib」を含む.gitignoreと空の.npmignoreを作成します。 .npmignoreが存在する必要があります。

あなたのテストはsrcディレクトリ(またはlib、大したことはありません)で実行できます。

+0

大変ありがとうございます。興味深いのは、 'lib'を追加することは1)ユニットテスト(srcファイルやlibファイルをテストするべきかどうか、そしてlibがテストスクリプトに最初にビルドを含まなければならないか)、2).gitignoreバージョン管理で、またはnah) – tscizzle

+0

@tscizzleが更新されました。 – FakeRainBrigand

関連する問題