Ember 外部 js 和全局

Ember external js and global

在我的 Ember 应用程序中,我正在尝试添加 money.js 外部库。我通过使用 bower 安装它然后将 app.import('bower_components/money.js/money.js'); 添加到我的 ember-cli-build.js.

成功实现了这一点

money.js 定义了一个全局变量 fx,它在我的整个应用程序中都可用。但是我在构建应用程序时收到许多 JSHint 错误,例如:

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

Ember docs 状态:

Typically, the application object is the only global variable. All other classes in your app should be properties on the Ember.Application instance, which highlights its first role: a global namespace.

我只是想知道导入这种库及其全局库的正确方法是什么

为避免jsHint报错,可以提及fx全局变量

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

如果你 app.import 一个全局的,你必须有可能让 jsHint 快乐:

  1. 在访问每个文件的全局之前添加 /* global fx */
  2. 将其添加到 .jshintrc 中的 predefs 部分,正如@kumkanillam 在他的回答中提到的那样。

如果您不喜欢将依赖作为全局访问,您可以对其进行填充。 Ember-cli 提供了一个 vendor-shim 生成器:ember generate vendor-shim money.js 之后你可以在你的模块中使用 import

此主题在 ember-cli docs 中有详细记录。