0

Ember.jsのアドオンを作成したい場合、この質問の目的のためにそれをember-awesomeと呼びましょう。これはライブラリawesome-lib.jsとその拡張機能のラッパーです。そのライブラリとバンドルしたい拡張機能の周りに shim を作成するにはどうすればよいですか?

awesome-lib、awesome-ext-foo、awesome- ext-awesome-lib.jsを提供する shimawesome-ext-foo.jsawesome-ext-bar.jsアドオンを作成する最良の方法は何ですか?コンポーネントへのバー?

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"],
      }
    });
    ...
  }
  ...
};

しかし、これはうまくいかないようです。確かに、いつでも異なる shim を作成できますが、同様のコンポーネントを同じ shim にバンドルするのが最も理にかなっていると考えました。

私がアドオンを作成しようとしているタイプ ライブラリと拡張機能の複雑さの良い実例は、markdown-itとその拡張機能です。

4

1 に答える 1