2017-03-19 88 views
0

我經常使用YSlow和google的pagespeed對我的網站進行一些基本的性能檢查。 我是Angular2的新手,最近一直在Angular2項目上工作,我在我的Angular2應用程序上運行了YSlow和PageSpeed測試。Angular2實施性能建議作者:YSlow

PageSpeed沒有運行,YSlow提出了一些改進建議。按照這些建議,我應該在以下js文件添加過期頭 -

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

什麼是Angular2這樣做的最好的/最有效的方法是什麼?

另外,根據YSlow的另一個建議,我還應該壓縮來自服務器的上述相同資源。當我使用Angular-CLI和ng-serve構建時如何在本地機器中啓用壓縮?

+1

這不是Angular的工作,你需要配置任何*服務*這些文件。這不是「服務」,純粹是爲了發展。 – jonrsharpe

+0

請注意,如果您的文件是這樣命名的,那意味着您運行的版本沒有--prod選項。這應該是你做的第一件事。它將預編譯模板,縮小代碼並從軟件包中刪除未使用的類,並生成可永久緩存的唯一文件名。 –

+0

謝謝@JB Nizet ..這是一些有用的建議 –

回答

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建立後,以驗證生產版本正在運行,並看到壓縮的行動。

+0

感謝您的回覆。這回答了關於壓縮的問題。你有什麼需要在js文件中添加過期頭文件? - 這應該允許瀏覽器緩存內容。 –

+0

我沒有使用過期標題,所以不能幫助。您必須查找特定服務器的信息。生產捆綁包在文件名中有哈希值,所以您可以將expires頭設置爲高值。 – Sasxa