2016-12-05 100 views
0

在我的Ember應用程序中,我試圖添加money.js外部庫。我成功地通過將它安裝在涼亭中,然後將app.import('bower_components/money.js/money.js');添加到我的ember-cli-build.js中。Ember外部js和全局

money.js定義了一個全局變量fx,它可以在我的應用程序中使用。不過,我收到許多JSHint錯誤而構建的應用程序,如:

components/purchase-form.js: line 41, col 29, 'fx' is not defined.

Ember docs狀態:

通常,應用對象是全球唯一變量。所有 應用中的其他類都應該是 Ember.Application實例的屬性,該實例強調其第一個角色:全局名稱空間 。

我只是想知道什麼是導入這種LIB的沿着正確的方式在全球

回答

1

如果app.import一個全球你有可能使jsHint快樂:

  1. 添加/* global fx */在訪問每個文件的全局之前。
  2. 作爲@kumkanillam在他的回答中提到,將它添加到部分.jshintrc中。

如果你不喜歡作爲一個全局訪問依賴關係,你可以將它作爲一個整體。 Ember-cli提供了一個供應商填充生成器:ember generate vendor-shim money.js然後,您可以在模塊中使用import

此主題在ember-cli docs中有詳細記錄。

0

爲了避免jsHint錯誤,那麼你可以說fx全局變量

{ 
    "predef": [ 
    "document", 
    "window", 
    "-Promise", 
    "fx" 
    ] 
} 
+0

很高興知道,我會用它,但我的問題需要一個更詳盡的答案。 tnx – masciugo

+1

@masciugo這個答案就足夠了。唯一的問題是linting警告,因爲你正在使用一個沒有在文件範圍內定義的全局('fx')。 – locks

+0

kumkanillam說了一些真實的東西,並且很有幫助,但我問__什麼是導入這種lib以及它的global__的正確方法。我最終使用了墊片。 – masciugo