我对在 ember-cli 中导入依赖项感到困惑,尤其是关于标准 AMD 案例,正如官方 Ember Cli 文档中所提到的。该文档没有提供太多示例,在我看来,它假设读者对 AMD 有很好的了解,但对我来说并非如此。我的直接用例是 import math.js。不幸的是,math.js 的官方文档没有提供使用 Ember Cli 导入的示例。然后,我发现这篇文章有比较清晰的例子,特别是下面的例子似乎很相关。
app.import({
development: 'vendor/lodash/dist/lodash.js',
production: 'vendor/lodash/dist/lodash.min.js'
}, {
'lodash': [
'default'
]
});
然后,我用 math.js 做了类似的事情,如下所示:
app.import({
development: 'bower_components/mathjs/dist/math.js',
production: 'bower_components/mathjs/dist/math.min.js'
}, {
'mathjs': [
'default'
]
});
但是,它不起作用。当我尝试使用它时
import mathjs from 'mathjs'
我有一个错误。最终,我使用了以下解决方案:
// Brocfile.js
app.import('bower_components/mathjs/dist/math.min.js');
// some controller.js
var math = window.math
尽管上述解决方案有效,但我不喜欢它,因为它可能会受到名称冲突的影响。此外,根据 math.js 的文档,在我看来它应该支持标准的 AMD 类型的导入。
所以,我的问题如下。
1.在上面的lodash
例子中,是什么'default'
意思?这是对相应模块中导出的任何内容的一般引用吗?我如何判断我是否可以在一般情况下使用它(例如,math.js)?
2.如果一个模块支持require.js,那么它是一个标准的AMD模块,这是真的吗?如果是这样,给出如下代码:
require.config({
paths: {
mathjs: 'path/to/mathjs',
}
});
require(['mathjs'], function (math) {
// use math.js
math.sqrt(-4); // 2i
});
如何将其映射到 Ember Cli 代码?