从今天起,所有新部署的自托管 Discourse 实例在生产环境中将默认使用我们的 Ember CLI 构建版本。
我们自身在生产环境中已运行这些构建版本相当长一段时间,它们应当是稳定的,并能与所有主流插件兼容。如果您遇到任何问题并需要关闭此功能,请编辑您的 app.yml 文件并移除 EMBER_CLI_PROD_ASSETS: 1。
否则,请将任何漏洞报告给我们,我们将迅速修复。
在不久的将来,所有 Discourse 实例都将使用 Ember CLI 构建版本。
从今天起,所有新部署的自托管 Discourse 实例在生产环境中将默认使用我们的 Ember CLI 构建版本。
我们自身在生产环境中已运行这些构建版本相当长一段时间,它们应当是稳定的,并能与所有主流插件兼容。如果您遇到任何问题并需要关闭此功能,请编辑您的 app.yml 文件并移除 EMBER_CLI_PROD_ASSETS: 1。
否则,请将任何漏洞报告给我们,我们将迅速修复。
在不久的将来,所有 Discourse 实例都将使用 Ember CLI 构建版本。
当前自托管站点,切换是否需要重新构建或管理员升级?
我的理解是,对于已安装的版本,您可以通过以下两种方式之一切换到使用 Ember CLI:
app.yml 文件,添加 EMBER_CLI_PROD_ASSETS: 1 这一行,然后重新构建,或是的,@Simon_Manning 说得对——如果您愿意,可以手动自行启用该功能,或者等待其成为默认设置。我们正在逐步推出,以便提前发现并修复所有错误。
好的,我已经安装好了。有什么需要我注意的吗?
Browserslist: caniuse-lite 已过时。请运行:
npx browserslist@latest --update-db
为什么你应该定期执行此操作:
https://github.com/browserslist/browserslist#browsers-data-updating
如有任何问题,请随时告知。
您能否也解释一下这涉及哪些内容,以及它为何重要——特别是对于那些不熟悉 Ember 生态系统的人。
您好,请问有预计完成时间吗?谢谢。
您现在就可以实现它。
您只需在 app.yml 中添加一行并重新构建即可。
我们计划在大约一个月后为旧版站点启用此功能。
我对这一变更感到非常兴奋,这对 Discourse 的未来是一件好事。
我只建议:如果您正在使用任何第三方主题组件或插件,请先创建一个独立的测试实例,配置相同的组件集,并在将主站点迁移到 Ember CLI 之前,先在那里进行全面测试。
我刚刚发布了对其中一个主题组件的重大更改,如果没有这些更改,主站点将会被破坏。
这里有更多信息:
简而言之:这是官方支持的 Ember 应用程序开发方式,将有助于他人参与贡献,并便于我们在未来升级 Ember。
是的,我设置了 EMBER_CLI_PROD_ASSETS: 1,但 Dracula 主题运行不佳。因此我移除了该功能:frowning:
您应该在 Dracula a Dark Theme for Discourse 上发帖,以便他们能够修复它。
这个改变可能会破坏的唯一主题组件是那些包含 Wyeth JavaScript 的组件,这是真的吗?
有没有简单的方法可以查询到包含 JavaScript 的主题组件?无论是通过数据浏览器还是 Rails 查询?我想知道哪些站点可能会受到影响,并主动提出让他们使用我的新产品(免费,这样我终于可以找到一些测试者)来安装一个暂存站点,以便在他们升级生产站点之前进行测试。
这是真的——这个 ember CLI 的更改不会影响主题/组件的 HTML 或 CSS 部分。
一般来说,你可以通过在旧的非 ember-cli 环境下,在浏览器的 JS 控制台中查找黄色的弃用通知来识别出有问题的组件。(迁移到 Ember CLI 是我们引入这些弃用的原因)
Meta 已经运行 Ember CLI 数周,我们一直在努力确保我们所有的官方主题/插件在新环境中都能正常工作。
好的。所以如果我拉取 /admin/customize/themes.json(或者实际路径是什么),它里面会有警告。我们认为这可能会有误报(即没有警告,但在升级时会失败)吗?
哦,如果它确实失败了,你只需要切换回环境变量。
对于插件,如果我在 JavaScript 控制台中看到弃用警告,那么我最终是否必须弄清楚它们的含义?似乎它们来自我正在使用的组件,而不是我的代码,但 Ember 和 JavaScript 对我来说仍然相当神秘。(尽管我写了很多代码,至少大部分是我写的)。
不,弃用警告会在您的浏览器控制台中运行时出现。它们不会出现在主题 REST API 中。
现在可以这样做。但我们很快就会将其设为非可选默认值,所以最好的解决方案是解决根本原因。
是的,恐怕是这样。如果您认为它们来自核心组件,或者您难以找到原因,请在 Dev 主题中提供详细信息。
哈。如果你运气好的话。如果运气不好,您将收到完整的错误消息,并且javascript执行将完全停止。这可能导致页面变为空白或损坏。
到目前为止,我发现各种问题,但大多数是Discourse对象的某些属性丢失,因此您必须找到一种不同的方法来访问站点和用户属性。(提示:这些在组件内是可访问的。您可以看到我最近在TLP TC上所做的工作)