2016-12-05 101 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