2017-03-19 9 views
0

정기적으로 YSlow와 Google의 페이지 속도를 사용하여 내 웹 사이트의 기본 성능 검사를 수행합니다. Angular2를 처음 사용하고 있으며 최근에 Angular2 프로젝트에서 작업하고 있습니다. Angular2 응용 프로그램에서 YSlow 및 PageSpeed ​​테스트를 실행했습니다.Angular2 구현 성능 제안 by YSlow

PageSpeed가 실행되지 않고 YSlow가 개선 할 몇 가지 제안을했습니다. 이 제안에 따라, 나는 다음의 js 파일에 만료 헤더를 추가한다 -

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

Angular2이 일을 제일/가장 효율적인 방법은 무엇입니까?

또한 YSlow의 또 다른 제안에 따라 서버에서 오는 동일한 리소스를 압축해야합니다. Angular-CLI 및 ng-serve를 사용하여 빌드 할 때 로컬 컴퓨터에서 압축을 활성화하는 방법은 무엇입니까?

+1

Angular의 직업이 아니므로, 그 파일을 제공 *하는 모든 것을 구성해야합니다. 순전히 발달을위한 '봉사 (ng serve)'가 아닙니다. – jonrsharpe

+0

파일 이름이 this와 같으면 --prod 옵션없이 ng build를 실행했음을 유의하십시오. 그것은 당신이하는 첫번째 일이되어야합니다. 템플릿을 미리 컴파일하고, 코드를 축소하고, 사용하지 않는 클래스를 번들에서 제거하고, 영원히 캐싱 할 수있는 고유 한 파일 이름을 생성합니다. –

+0

감사합니다 @JB Nizet .. 이것은 유용한 제안입니다 –

답변

1

걱정되는 점은 각도 자체가 아니라 서버 설정에 관한 것입니다. 당신이 ng serve 일 때 간단히하지 마십시오. 그것은 단지 개발 속도를 늦출 것입니다. 앱의 프로덕션 버전을 빌드 할 때 테스트를 수행하고 배포하기 전에 dist/ 폴더에서 서비스를 확인할 수 있습니다. 후 확인 node 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.'); 
}); 

을하고 실행 :

다음은 CLI

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

프로젝트 루트에이 express.js에게를 추가 영향을주지 않는 간단한 방법입니다 프로덕션 버전이 작동 중이고 압축이 작동하는지 확인합니다.

+0

답장을 보내 주셔서 감사합니다. 압축에 관한 질문에 대한 대답입니다. js 파일에 만료 헤더를 추가하는 데 걸리는 시간은 얼마입니까? - 이것은 브라우저가 내용을 캐싱 할 수있게합니다. –

+0

나는 만료 헤더를 사용하지 않았으므로 거기에서 도울 수 없다. 특정 서버에 대한 정보를 조회해야합니다. 프로덕션 번들에는 파일 이름에 해시가 있으므로 만료 헤더를 높은 값으로 설정할 수 있습니다. – Sasxa