Ember应用程序使用插件已安装为传递依赖项

时间:2018-06-30 00:52:59

标签: ember.js ember-cli

Ember应用程序可以使用作为传递依赖项安装的插件吗?我有一个本地Ember插件,在np.core.defchararray.strip(a, '()').astype(int) 中将ember-angle-bracket-invocation-polyfill列为dependency。当我使用package.json将插件安装到Ember应用程序中时,无法使用ember install path/to/addon。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

插件可以在其安装过程中添加依赖项。这通常在default blueprint中完成。默认蓝图是与插件名称完全相同的蓝图。它会在ember-cli安装插件后自动运行。这是ember install <addon-name>应该安装插件的主要原因,而不仅仅是使用npm或yarn作为依赖项添加插件。

Ember-cli根据其类型提供different methods to add a dependency。由于ember-angle-bracket-invocation-polyfill是余烬插件,因此您的情况应使用addAddonsToProject()。它期望一个对象具有一个数组,该数组的键名在packages下。

在您的示例中,蓝图如下所示:

// blueprints/your-addon-name/index.js
module.exports = {
  normalizeEntityName() {}, // no-op since we're just adding dependencies

  afterInstall() {
    // Add addons to package.json and run defaultBlueprint
    return this.addAddonsToProject({
      // a packages array defines the addons to install
      packages: [
        // name is the addon name, and target (optional) is the version
        {name: 'ember-angle-bracket-invocation-polyfill'}
      ]
    });
  }
};

Working with dependencies chapter中的更多信息ember-cli docs