mis*_*nry 5 javascript ember.js ember-cli
我正在尝试通过 ember-cli 在我的 Ember 应用程序中加载gridstack。我通过安装应用程序bower并导入到我的ember-cli-build.js文件中。它_通过以下方式作为库包括:
if (typeof define === 'function' && define.amd) {
define(['jquery', 'lodash'], factory);
}
Run Code Online (Sandbox Code Playgroud)
define.amd 评估为 false
我调查了为什么会这样,发现 ember-cli 的加载器不支持UMD. 在开放 cli问题上,主要 cli 开发人员之一 Stefan Penner 建议:
这是设计使然。因为这个库需要一个预构建步骤来对模块进行去匿名化。该步骤可以进行适当的修改以正常工作
我不知道这意味着什么。我通过ember-cli-build在这个库之前手动导入这个库的依赖项来解决这个问题,但这违背了依赖项管理的目的。我怎样才能让这个库解析它自己的模块?
新 Ember 项目的最新 Ember CLI 蓝图包含ember-auto-import。ember-auto-import是一个允许在 Ember 中导入任何 NPM 库的库。无需配置。它也可以安装在使用旧版 Ember CLI 的项目中,这是推荐的方式。
如果您不想安装额外的依赖项 - 即使它是官方蓝图的一部分 - Ember CLI 不仅支持标准命名 AMD 资产,app.import('path/to/entry-point.js')还支持标准匿名 AMD 资产:
app.import('path/to/entry-point.js', {
using: [
{ transformation: 'amd', as: 'your-named-import' }
]
});
Run Code Online (Sandbox Code Playgroud)
正常情况下,这会进入您的ember-cli-build.js.
Sidenode:有一段时间,ember-browserify是 CommonJS 模块的推荐解决方案。但它已被弃用,取而代之的是ember-auto-import.