2017-04-01 14 views
2

私はrecievingだ:にSyntaxError:予期しないトークン:punc())

にSyntaxError:予期しないトークン:punc())UglifyJS

から

、それがグローバル変数API_URLの最初の文字を指します。 は、私はそれがこの方法で実装されています

export default reduxApi({ 
    campaigns: { 
    url: `${API_URL}/api/v1/whatever`, 
    transformer (response) { 
     if (!response) return {} 
     return response.data 
    } 
    } 
}).use('fetch', adapterFetch(fetch)).use('options', { 
    headers: getRequestHeaders() 
}) 

を、私は、キーurlの下にグローバル変数を削除する場合:

export default reduxApi({ 
    campaigns: { 
    url: `/api/v1/whatever`, 
    transformer (response) { 
     if (!response) return {} 
     return response.data 
    } 
    } 
}).use('fetch', adapterFetch(fetch)).use('options', { 
    headers: getRequestHeaders() 
}) 

を、その後、すべてが正常に動作します。何か案は?なぜ醜いのは、そのようなエラーをスローする?

+0

あなたは 'url'をどういう意味ですか、' $ {API_URL} 'を意味しますか? – rckrd

+0

@rckrdが編集されました。今それは理解できるはずです。 – turkus

+1

ありがとうございます。 '$ {API_URL}'を設定する方法は? – rckrd

答えて

0

ここで解決策を書くことにしました。私は他のuglify-jsパッケージのバージョンをインストールする必要はありませんでした。ポイントは、オブジェクトへのインポートを適切な方法で解決することでした。私の場合、API_URLはグローバル変数でした。だからUglifyはそれが定義されているかどうか確信が持てませんでした。私はこのようにwebpack externalsを使用し、その問題を解決するために

// ------------------------------------                        
// Externals 
// ------------------------------------ 
webpackConfig.externals = { 
    config: JSON.stringify(require(`./${__DEV__ ? 'development' : 'production'}.json`)),             
} 

それはちょうど環境(developmentまたはproduction)に応じて、config変数にJSONの設定オブジェクトを置きます。あなたがする必要があるのは、webpackConfig.externalsを定義するファイルの隣にdevelopment.jsonproduction.jsonを入れることだけです。

{ 
    "apiUrl": "http://localhost:5000" 
} 

その後、最終的にあなたのコード内で:

はその後、私の場合のように、あなたはそれがのがdevelopment.jsonに言わせて定義

... // other imports 
import config from "config" 

export default reduxApi({ 
    campaigns: { 
    url: `${config.apiUrl}/api/v1/whatever`, 
    transformer (response) { 
     if (!response) return {} 
     return response.data 
    } 
    } 
}).use('fetch', adapterFetch(fetch)).use('options', { 
    headers: getRequestHeaders() 
}) 

、それは魔法のように動作します。

誰かを助ける希望。

3

UglifyはES6,template literals includedを完全にサポートしていません。あなたはtrack the conversation on Githubです。 ES6のサポートにはharmony branchがあります。

"uglify-js": "git+https://github.com/mishoo/UglifyJS2.git#harmony" 

はまた、あなたが縮小する前に、まずtranspilerを通じてコードを渡したいかもしれません:uglifyのためにあなたのpackage.jsonエントリを置き換えることにより、ブランチを使用することができます。そうすれば、すべての構文はUglifyが非常によく理解できるES5になります。 ES6の構文の一部を元のままにしたい場合は、トランスペラレータの設定を調整することができます。

+0

あなたのヒントを使用しました。私はこれをpackage.jsonに追加しましたが、私はhttps://github.com/davezuko/react-redux-starter-kitを使用していて、それはうまくいきません。多分いくつかの他の依存関係? – turkus

関連する問題