如何使用 Ember CLI 进行生产就绪构建?

Posted

技术标签:

【中文标题】如何使用 Ember CLI 进行生产就绪构建?【英文标题】:How to make a production ready build using Ember CLI? 【发布时间】:2015-06-09 06:06:16 【问题描述】:

我一直在用 Ember 构建一个 Web 应用程序,并准备将它放在服务器上供公众使用。我只想制作 /dist/ 文件夹,然后我将通过 FTP 手动上传到服务器。

如何在 Ember 中为此构建一个 dist?我不知道如何打开缩小并从构建中删除测试文件。

我猜它与我的 Brocfile.js、bower.json、package.json、environment.js 或 tester.json 文件有关,但我真的不知道是哪一个,或者那个配置会是什么看起来像。

奖励:我也想知道如何禁用/启用缩小,因为我想与同事分享我的生产版本以查看。

应该不仅仅是“ember build --environment production”。我需要更改哪些文件以启用/禁用 minfication,包括测试等?或者这就是“ember build --environment production”的作用?

谢谢!

【问题讨论】:

ember build --environment=production Building with ember CLI in production environment 的可能重复项 为什么要多于那个命令?你读过docs 吗? Minification @Kitler,好的,这样就进入了 brocfile 的 if 语句中?测试呢? 在生产模式下运行构建时排除测试。 【参考方案1】:

创建dist 文件夹所需要做的就是运行:

ember build --environment=production

或者正如@Simon 提到的那样

ember build -prod

但是要给骨头加点肉:

如果您需要更改设置,您可以通过在 config 文件夹中找到您的 environment.js 文件来执行此操作。

Ember 文档建议更改 locationType: 'hash' 以确保历史记录与路由器正常工作。

您有一个看起来像这样的部分,您可以在其中添加 ENV.theVariableToSet = 'myValue'; 以进行任何您想要更改的内容

if (environment === 'production') 
  ENV.locationType = 'hash'

【讨论】:

我希望是ember build production 您也可以使用ember build -prod,因为-prod 被ember-cli 别名为--environment=production。不像ember build production那么优雅,但更短一些。【参考方案2】:

对于任何寻找的人,您都可以将其添加到您的 Brocfile.js(在应用根目录中)

// When in Production mode, minify code
if (app.env === 'production') 
    minifyCSS: 
        enabled: true
    
    minifyJS: 
        enabled: true
    

然后在终端中运行这个命令(确保你在你的 App 目录中):

ember build --environment=production

【讨论】:

使用生产环境构建时,压缩应该由ember-cli自动完成。 同意。此代码是不必要的(冗余)。运行命令就是缩小 CSS 和 JS 所需的全部内容。除非您对默认配置进行了修改,否则这是默认配置。 第一个代码块在语法上也不是正确的javascript。您正在将语句与看起来像部分对象文字的内容混合在一起。

以上是关于如何使用 Ember CLI 进行生产就绪构建?的主要内容,如果未能解决你的问题,请参考以下文章

如何调试缓慢的 Ember CLI/Broccoli 构建

为啥我的 ember-cli 构建时间在 Windows 上如此缓慢?

如何在 Angular cli 中启用 gzip 压缩以进行生产构建

在构建期间在 ember-cli 应用程序中使用 ENV 值

如何在 ember-cli 中导入 amd 模块?

将 Ember-CLI 与 Laravel 或其他后端框架一起使用