# 使用 ember generate 生成一个组件？

**URL:** https://meta.discourse.org/t/use-ember-generate-to-generate-say-a-component/208677
**Category:** Development
**Created:** [2021年十一月9日 14:32 UTC](https://meta.discourse.org/t/use-ember-generate-to-generate-say-a-component/208677 "2021-11-09T14:32:33Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2021年十一月9日 14:32 UTC](https://meta.discourse.org/t/use-ember-generate-to-generate-say-a-component/208677/1 "2021-11-09T14:32:33Z")

</div>

我曾为要在 Discourse 中添加路由（我目前正试图在插件的自定义模型中添加一个 `edit` 路由）所需的所有事情而感到苦恼，我的朋友说：“有生成器吗？” 如果你是一名“普通”的 Ember 开发者，答案是肯定的。但我无法弄清楚如何说服 Ember 让我使用它来生成组件，所以我将继续寻找类似的东西并进行复制。

但有没有更好的方法？🤔

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [2021年十一月9日 14:42 UTC](https://meta.discourse.org/t/use-ember-generate-to-generate-say-a-component/208677/2 "2021-11-09T14:42:09Z")

</div>

在核心中，是的（TIL！）。您需要先切换到我们的 ember 应用程序目录：

```plaintext
❯ cd app/assets/javascripts/discourse
❯ yarn ember generate component my-component-name
yarn run v1.22.10
$ /Users/david/discourse/discourse/app/assets/javascripts/node_modules/.bin/ember generate component my-component-name
installing component
  create app/components/my-component-name.js
  create app/templates/components/my-component-name.hbs
installing component-test
  create tests/integration/components/my-component-name-test.js
✨ Done in 2.06s.

```

但我认为在插件目录中没有简单的方法可以做到这一点。

> [@pfaffman](#):
>
> 我将继续寻找类似的东西并复制它。

我也是这样做的 ✂ 📋

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2021年十一月9日 19:34 UTC](https://meta.discourse.org/t/use-ember-generate-to-generate-say-a-component/208677/3 "2021-11-09T19:34:06Z")

</div>

啊哈！`yarn` 获胜！

> [@david](#):
>
> 但我认为在插件目录中没有简单的方法可以做到这一点。

嗯，我又花了 10 分钟尝试了一下，我认为你是对的。当我使用 rails 生成器进行迁移时，我只是把它从 discourse 路径移到插件中，所以我想同样的方法也可能有效。

> [@david](#):
>
> 我也是这样做的 ✂ 📋

当我发现我独自采用的做法，最终与那些“知道自己在做什么的人”的做法相同，我常常感到欣慰——也感到惊讶。

非常感谢！
