RequireJS와 Modernizr에 문제가 있습니다.RequireJS에 Modernizr을 포함하고 Modernizr을 헤드 태그에 넣습니다.
Modernizr 리소스를 머리에 쓰고 싶습니다. 그리고 시체의 다른 모든 것들. 그 이유는 Modernizr이 DOMContentLoad보다 먼저 할 일이 필요하기 때문입니다. RequireJS를 사용하여 Modernizr 모듈을 다른 모듈에로드 할 수 있기를 원합니다. 어떻게 dev 및 프로덕션 환경에서이를 수행 할 수 있습니까? requirejs를 사용하여 모든 종속성을 가져오고 모든 리소스를 축소합니다. 그리고 yeoman 빌드는 <script data-main="scripts/main" src="scripts/vendor/require.js"></script>
을 축소 버전으로 바꿉니다. body 태그에서
:
<!-- build:js ikl.app.js -->
<script data-main="scripts/main" src="scripts/vendor/require.js"></script>
<!-- endbuild -->
<script>
requirejs.config({
paths: {
'jquery' : 'vendor/jquery',
'handlebars' : 'vendor/handlebars',
'ember' : 'vendor/ember',
'ember-data' : 'vendor/ember-data',
'modernizr' : 'vendor/modernizr' // This should be removed
},
baseUrl: 'scripts',
shim: {
'jquery' : {
exports : 'jQuery'
},
'ember': {
deps: ['jquery', 'handlebars'],
exports: 'Ember'
},
'ember-data': {
deps: ['ember'],
exports: 'DS'
},
'handlebars': {
exports: 'Handlebars'
},
'modernizr': {
exports: 'Modernizr'
}
}
});
require([
'modules/system/controllers/system.controller',
'jquery',
'ember',
'ember-data',
'handlebars',
'modernizr'
],
function(systemController) {
systemController.renderView();
}
);
</script>
가 왜 그냥 머리에 스크립트 요소에 동 기적으로 모더 나이저를로드 모더 나이저 모듈 정의? 모든 CSS 클래스 등이 존재하도록 Modernizr이 실행되기를 기다리는 페이지를 원할 것입니다. 그리고 다양한 CSS 클래스가 갑자기 시작될 때보기 흉한 '스타일 점프'를 얻지 마십시오. –
성능 향상이 있습니다. 본문 태그. HTML을 빠르게 렌더링하고 JS 로직을 적용합니다. 나는 가능한 한 적은 JS 로직을 머리에 쓰고 있지 않다. – einstein
flash-of-unstyled-content는 Modernizr 자체가로드되기 전에 HTML을 렌더링하지 않는 convicing 인수이다. 다시 생각 해봐. –