# 新安装将在生产环境默认使用 Ember CLI 构建

**URL:** <https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282>\
**Category:** Announcements\
**Tags:** ember\
**Created:** [2021年十一月4日 18:49 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282 "2021-11-04T18:49:41Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![eviltrout](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eviltrout/32/5275_2.png) [@eviltrout](https://meta.discourse.org/u/eviltrout)\
**Post date:** [2021年十一月4日 18:49 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/1 "2021-11-04T18:49:42Z")

</div>

从今天起，所有新部署的自托管 Discourse 实例在生产环境中将默认使用我们的 Ember CLI 构建版本。

我们自身在生产环境中已运行这些构建版本相当长一段时间，它们应当是稳定的，并能与所有主流插件兼容。如果您遇到任何问题并需要关闭此功能，请编辑您的 `app.yml` 文件并移除 `EMBER_CLI_PROD_ASSETS: 1`。

否则，请将任何漏洞报告给我们，我们将迅速修复。

在不久的将来，所有 Discourse 实例都将使用 Ember CLI 构建版本。

---

<div class="post-metadata">

**Author:** ![IAmGav](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/iamgav/32/235598_2.png) [@IAmGav](https://meta.discourse.org/u/IAmGav)\
**Post date:** [2021年十一月4日 19:18 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/2 "2021-11-04T19:18:55Z")

</div>

当前自托管站点，切换是否需要重新构建或管理员升级？

---

<div class="post-metadata">

**Author:** ![Simon\_Manning](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon_manning/32/198596_2.png) [@Simon\_Manning](https://meta.discourse.org/u/Simon_Manning)\
**Post date:** [2021年十一月4日 19:22 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/3 "2021-11-04T19:22:47Z")

</div>

我的理解是，对于已安装的版本，您可以通过以下两种方式之一切换到使用 Ember CLI：

1. 编辑 `app.yml` 文件，添加 `EMBER_CLI_PROD_ASSETS: 1` 这一行，然后重新构建，或
2. 等到“不久的将来”它成为标准后再重新构建

---

<div class="post-metadata">

**Author:** ![eviltrout](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eviltrout/32/5275_2.png) [@eviltrout](https://meta.discourse.org/u/eviltrout)\
**Post date:** [2021年十一月4日 19:25 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/4 "2021-11-04T19:25:02Z")

</div>

是的，@Simon_Manning 说得对——如果您愿意，可以手动自行启用该功能，或者等待其成为默认设置。我们正在逐步推出，以便提前发现并修复所有错误。

---

<div class="post-metadata">

**Author:** ![IAmGav](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/iamgav/32/235598_2.png) [@IAmGav](https://meta.discourse.org/u/IAmGav)\
**Post date:** [2021年十一月4日 19:43 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/5 "2021-11-04T19:43:03Z")

</div>

好的，我已经安装好了。有什么需要我注意的吗？

---

<div class="post-metadata">

**Author:** ![IAmGav](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/iamgav/32/235598_2.png) [@IAmGav](https://meta.discourse.org/u/IAmGav)\
**Post date:** [2021年十一月4日 20:40 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/6 "2021-11-04T20:40:25Z")

</div>

```plaintext
Browserslist: caniuse-lite 已过时。请运行：
npx browserslist@latest --update-db

为什么你应该定期执行此操作：
https://github.com/browserslist/browserslist#browsers-data-updating

```

---

<div class="post-metadata">

**Author:** ![eviltrout](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eviltrout/32/5275_2.png) [@eviltrout](https://meta.discourse.org/u/eviltrout)\
**Post date:** [2021年十一月4日 21:43 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/7 "2021-11-04T21:43:37Z")

</div>

如有任何问题，请随时告知。

---

<div class="post-metadata">

**Author:** ![meglio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/meglio/32/71444_2.png) [@meglio](https://meta.discourse.org/u/meglio)\
**Post date:** [2021年十一月4日 23:11 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/8 "2021-11-04T23:11:24Z")

</div>

您能否也解释一下这涉及哪些内容，以及它为何重要——特别是对于那些不熟悉 Ember 生态系统的人。

---

<div class="post-metadata">

**Author:** ![valsha](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/valsha/32/230631_2.png) [@valsha](https://meta.discourse.org/u/valsha)\
**Post date:** [2021年十一月5日 06:09 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/9 "2021-11-05T06:09:07Z")

</div>

> [@Simon\_Manning](#):
>
> 等到“不久的将来”它成为标准后再重构

您好，请问有预计完成时间吗？谢谢。

---

<div class="post-metadata">

**Author:** ![IAmGav](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/iamgav/32/235598_2.png) [@IAmGav](https://meta.discourse.org/u/IAmGav)\
**Post date:** [2021年十一月5日 07:15 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/10 "2021-11-05T07:15:43Z")

</div>

您现在就可以实现它。

您只需在 app.yml 中添加一行并重新构建即可。

> [@Simon\_Manning](#):
>
> 编辑 `app.yml` 以添加 `EMBER_CLI_PROD_ASSETS: 1` 行，然后重新构建

---

<div class="post-metadata">

**Author:** ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)\
**Post date:** [2021年十一月5日 12:48 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/11 "2021-11-05T12:48:55Z")

</div>

我们计划在大约一个月后为旧版站点启用此功能。

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [2021年十一月5日 16:17 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/12 "2021-11-05T16:17:49Z")

</div>

我对这一变更感到非常兴奋，这对 Discourse 的未来是一件好事。

我只建议：如果您正在使用任何第三方主题组件或插件，请先创建一个独立的测试实例，配置相同的组件集，并在将主站点迁移到 Ember CLI 之前，先在那里进行全面测试。

我刚刚发布了对其中一个主题组件的重大更改，如果没有这些更改，主站点将会被破坏。

---

<div class="post-metadata">

**Author:** ![eviltrout](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eviltrout/32/5275_2.png) [@eviltrout](https://meta.discourse.org/u/eviltrout)\
**Post date:** [2021年十一月5日 19:56 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/13 "2021-11-05T19:56:07Z")

</div>

> [@meglio](#):
>
> 您能否也向不熟悉 Ember 生态系统的用户解释一下这涉及什么内容以及为何重要？

这里有更多信息：

> [@EmberCLI: Coming to a Discourse near you!](https://meta.discourse.org/t/embercli-coming-to-a-discourse-near-you/143528):
>
> We’d like to migrate Discourse’s asset pipeline over to use [EmberCLI](https://ember-cli.com/). EmberCLI is the standard way to develop Ember applications and Discourse’s approach has long been a source of confusion for people approaching our project with an Ember.js background. Background Discourse has been around long enough that it pre-dates EmberCLI’s existence, and in fact using something like the Rails asset pipeline was considered a best practice at the time. Over the years we’ve tacked on more and more to our E…

简而言之：这是官方支持的 Ember 应用程序开发方式，将有助于他人参与贡献，并便于我们在未来升级 Ember。

---

<div class="post-metadata">

**Author:** ![valsha](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/valsha/32/230631_2.png) [@valsha](https://meta.discourse.org/u/valsha)\
**Post date:** [2021年十一月5日 21:45 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/14 "2021-11-05T21:45:58Z")

</div>

是的，我设置了 `EMBER_CLI_PROD_ASSETS: 1`，但 Dracula 主题运行不佳。因此我移除了该功能：frowning:

---

<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年十一月5日 23:05 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/15 "2021-11-05T23:05:21Z")

</div>

您应该在 [Dracula a Dark Theme for Discourse](https://meta.discourse.org/t/dracula-a-dark-theme-for-discourse/146350) 上发帖，以便他们能够修复它。

---

<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年十一月6日 17:50 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/16 "2021-11-06T17:50:32Z")

</div>

这个改变可能会破坏的唯一主题组件是那些包含 Wyeth JavaScript 的组件，这是真的吗？

有没有简单的方法可以查询到包含 JavaScript 的主题组件？无论是通过数据浏览器还是 Rails 查询？我想知道哪些站点可能会受到影响，并主动提出让他们使用我的新产品（免费，这样我终于可以找到一些测试者）来安装一个暂存站点，以便在他们升级生产站点之前进行测试。

---

<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年十一月6日 20:21 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/17 "2021-11-06T20:21:42Z")

</div>

> [@pfaffman](#):
>
> 只有包含 Wyeth JavaScript 的主题组件可能会受到此更改的影响？

这是真的——这个 ember CLI 的更改不会影响主题/组件的 HTML 或 CSS 部分。

一般来说，你可以通过在旧的非 ember-cli 环境下，在浏览器的 JS 控制台中查找黄色的弃用通知来识别出有问题的组件。（迁移到 Ember CLI 是我们引入这些弃用的原因）

Meta 已经运行 Ember CLI 数周，我们一直在努力确保我们所有的官方主题/插件在新环境中都能正常工作。

---

<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年十一月6日 21:51 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/18 "2021-11-06T21:51:28Z")

</div>

好的。所以如果我拉取 `/admin/customize/themes.json`（或者实际路径是什么），它里面会有警告。我们认为这可能会有误报（即没有警告，但在升级时会失败）吗？

哦，如果它确实失败了，你只需要切换回环境变量。

对于插件，如果我在 JavaScript 控制台中看到弃用警告，那么我最终是否必须弄清楚它们的含义？似乎它们来自我正在使用的组件，而不是我的代码，但 Ember 和 JavaScript 对我来说仍然相当神秘。（尽管我写了很多代码，至少大部分是我写的）。

---

<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年十一月6日 22:48 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/19 "2021-11-06T22:48:41Z")

</div>

> [@pfaffman](#):
>
> 所以如果我拉下 `/admin/customize/themes.json`（或者实际路径是哪个），它里面会有警告。

不，弃用警告会在您的浏览器控制台中运行时出现。它们不会出现在主题 REST API 中。

> [@pfaffman](#):
>
> 如果失败了，你只需要切换回环境变量。

现在可以这样做。但我们很快就会将其设为非可选默认值，所以最好的解决方案是解决根本原因。

> [@pfaffman](#):
>
> 对于插件，如果我在 JavaScript 控制台中看到弃用警告，那么我最终将不得不弄清楚它们的含义？

是的，恐怕是这样。如果您认为它们来自核心组件，或者您难以找到原因，请在 #Dev 主题中提供详细信息。

---

<div class="post-metadata">

**Author:** ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
**Post date:** [2021年十一月7日 08:48 UTC](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282/20 "2021-11-07T08:48:57Z")

</div>

> [@david](#):
>
> 通常，您可以通过在浏览器 JS 控制台中查找黄色的弃用通知来识别问题主题组件。

哈。如果你运气好的话。如果运气不好，您将收到完整的错误消息，并且javascript执行将完全停止。这可能导致页面变为空白或损坏。

到目前为止，我发现各种问题，但大多数是`Discourse`对象的某些属性丢失，因此您必须找到一种不同的方法来访问站点和用户属性。（提示：这些在组件内是可访问的。您可以看到我最近在TLP TC上所做的工作）

[下一頁](https://meta.discourse.org/t/new-installs-will-default-to-ember-cli-builds-in-production/208282.md?page=2)
