为什么从插件生成组件时,余烬 CLI 不为 hbs 文件生成应用桥接?



当我在Ember Addon项目(比如addon-project)中运行ember g component foo-bar时,它会生成以下内容:

// addon-project/addon/components/foo-bar.js
import Ember from 'ember';
import layout from '../templates/components/foo-bar';
export default Ember.Component.extend({
  layout
}
// addon-project/addon/templates/components/foo-bar.hbs
{{yield}}
// addon-project/app/components/foo-bar.js
export { default } from 'addon-project/components/foo-bar';

我注意到它不会生成addon-project/app/templates/components/foo-bar.js来导出组件模板,而是使用layout显式链接模板。

为什么不生成addon-project/app/templates/components/foo-bar.js?这种行为有原因吗?

此外,为什么使用相对路径而不是绝对路径导入layout(即import layout from 'addon-project/templates/components/foo-bar

First-您使用哪个版本的ember-cli?蓝图取决于版本

对我来说,它做下一个

vvs ~/r/e/test-addon> ember -v
ember-cli: 2.6.3
node: 4.4.7
os: darwin x64
vvs ~/r/e/test-addon> ember g component test-component
Could not start watchman; falling back to NodeWatcher for file system events.
Visit http://ember-cli.com/user-guide/#watchman for more info.
installing component
  create addon/components/test-component.js
  create addon/templates/components/test-component.hbs
installing component-test
  create tests/integration/components/test-component-test.js
installing component-addon
  create app/components/test-component.js

因此它生成模板以及

接下来,它使用导入布局的相关路径来减少依赖于插件名称空间(在index.js中定义)的位置数量,因此,如果您将来更改该名称空间,您应该只更新显式映射到应用程序的文件。

哦。在组件使用的布局中,它没有生成模板桥接。它允许您在不定义模板的情况下扩展组件(您可以只扩展原始组件,添加/更改逻辑并跳过创建模板)。如果您要使用模板而不是布局,您应该手动定义模板(或显式使用相同的布局)

最新更新