如果我想为Ember.js创建一个附加组件,我们称它为ember-awesome来解决这个问题,它是一个库awesome-lib.js及其扩展的包装器。如何围绕该库创建一个 shim 以及我想与它捆绑的任何扩展?
假设awesome-lib.js
可以有插件或对其功能的扩展,例如awesome-ext-foo.js
,awesome-ext-bar.js
等。为提供 awesome-lib、awesome-ext-foo 和 awesome-ext- 的插件编写 shim 和附加组件的最佳方法是什么?栏到组件?
我想我可以定义一个单一的垫片,例如vendor/shims/awesome-lib-shim.js
:
// ember-awesome/vendor/shims/awesome-lib-shim.js
define("awesome-lib", [
"awesome-lib",
"awesome-ext-foo",
"awesome-ext-bar"], function(awesomeLib, extFoo, extBar) {
return {
"default": awesomeLib,
"foo": extFoo,
"bar": extBar
};
})
并在我ember-awesome/index.js
的这样使用它:
// ember-awesome/index.js
module.exports = {
name: "ember-awesome",
included: function(app) {
...
this.app.import("vendor/shims/awesome-lib-shim.js", {
type: "vendor",
exports: {
"awesome-lib": ["default"],
"awesome-ext-foo": ["foo"],
"awesome-ext-bar": ["bar"],
}
});
...
}
...
};
这似乎不起作用。当然,我总是可以创建不同的垫片,但我认为将相似的组件捆绑在同一个垫片中是最有意义的。
我希望围绕它编写附加组件的类型库和扩展复杂性的一个很好的真实世界示例是markdown-it及其扩展