【问题标题】:Angular2 Implementing Performance Suggestion By YSlowAngular2 实现 YSlow 的性能建议
【发布时间】:2017-03-19 10:05:26
【问题描述】:

我经常使用 YSlow 和 google 的 pagespeed 对我的网站进行一些基本的性能检查。 我是 Angular2 的新手,最近一直在做一个 Angular2 项目,我在我的 Angular2 应用程序上运行了 YSlow 和 PageSpeed 测试。

PageSpeed 没有运行,YSlow 给出了一些改进建议。根据这些建议,我应该在以下 js 文件中添加过期标头 -

inline.bundle.js  
styles.bundle.js  
main.bundle.js  
vendor.bundle.js

在 Angular2 中最好/最有效的方法是什么?

另外,根据 YSlow 的另一个建议,我还应该压缩来自服务器的上述相同资源。当我使用 Angular-CLI 和 ng-serve 构建时,如何在本地机器中启用压缩?

【问题讨论】:

  • 这不是 Angular 的工作,您需要配置服务这些文件的任何内容。那不是ng serve,纯粹是为了开发。
  • 请注意,如果您的文件是这样命名的,这意味着您运行 ng build 时没有使用 --prod 选项。这应该是你做的第一件事。它将预编译模板、缩小代码并从包中删除未使用的类,并生成可以永久缓存的唯一文件名。
  • 谢谢@JB Nizet.. 这是一些有用的建议

标签: angular yslow


【解决方案1】:

您关心的是服务器设置,而不是角度本身。当您ng serve 时,请不要这样做。它只会减缓你的发展。我在构建应用程序ng b -prod -aot 的生产版本时进行测试,您可以从dist/ 文件夹中提供服务以在部署前检查内容。

这是不影响 CLI 的简单方法

npm install --save-dev express compression connect-history-api-fallback

将此 express.js 添加到您的项目根目录:

var compression = require('compression');
var express = require('express');
var history = require('connect-history-api-fallback');


var app = express();

app.use(history());
app.use(compression());
app.use(express.static('dist'));

app.listen(4200, function () {
  console.log('\n', 'Serving "dist/" on http://localhost:4200. [Ctrl+C] to disconnect.');
});

并在使用node express.js 构建后运行它,以验证生产版本是否正常工作并查看压缩效果。

【讨论】:

  • 感谢您的回复。这回答了关于压缩的问题。您对在 js 文件中添加过期标头有何看法? - 这应该允许浏览器缓存内容。
  • 我没有使用过期标头,所以无能为力。您必须查找特定服务器的信息。生产包在文件名中有散列,所以你可以将过期标头设置为高值...
猜你喜欢
  • 1970-01-01
  • 2010-11-11
  • 2011-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多