Ember 应用使用插件作为传递依赖安装
Ember app use addon installed as transitive dependency
Ember 应用程序可以使用作为传递依赖项安装的插件吗?我有一个本地 Ember 插件,它在 package.json
中将 ember-angle-bracket-invocation-polyfill
列为 dependency
。当我使用 ember install path/to/addon
将插件安装到 Ember 应用程序时,我无法使用 ember-angle-bracket-invocation-polyfill
。感谢您的帮助!
插件可以在其安装过程中添加依赖项。这通常在 default blueprint 中完成。默认蓝图是与插件同名的蓝图。通过 ember-cli 安装插件后,它会自动 运行。这就是为什么插件应该由 ember install <addon-name>
安装的主要原因,而不仅仅是使用 npm 或 yarn 将其添加为依赖项。
Ember-cli 根据其类型提供 different methods to add a dependency。由于 ember-angle-bracket-invocation-polyfill
是一个 ember 插件,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'}
]
});
}
};
Ember 应用程序可以使用作为传递依赖项安装的插件吗?我有一个本地 Ember 插件,它在 package.json
中将 ember-angle-bracket-invocation-polyfill
列为 dependency
。当我使用 ember install path/to/addon
将插件安装到 Ember 应用程序时,我无法使用 ember-angle-bracket-invocation-polyfill
。感谢您的帮助!
插件可以在其安装过程中添加依赖项。这通常在 default blueprint 中完成。默认蓝图是与插件同名的蓝图。通过 ember-cli 安装插件后,它会自动 运行。这就是为什么插件应该由 ember install <addon-name>
安装的主要原因,而不仅仅是使用 npm 或 yarn 将其添加为依赖项。
Ember-cli 根据其类型提供 different methods to add a dependency。由于 ember-angle-bracket-invocation-polyfill
是一个 ember 插件,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'}
]
});
}
};