CoffeeScript로 RequireJS를 빌드하고 실행할 때 일반적인 방법으로 이해할 때 예상 된 순서대로 코드가 실행되지 않는 것 같습니다. RequireJS 순서가 잘못된 실행 - 'require'에 대한 인수를 사용하지 않음
<script src="/_s/lib/require-jquery.js"></script>
<script>
require.config({
paths: {
"main": "/_s/all.min", // <--- the 'optimized' result of `$ r.js build.js`
}
});
require(["main"], function() {
// this executes without any regard to whether 'main' is loaded.
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// also:
// require('cs!csmain') throws an exception because "cs!csmain" has not been
// loaded for context: '_'.
});
한 예
은 that's what the documentation says 때문에,require(["main"], ...
에 전달하는 기능이 주 후에 실행하고 모든 종속성이로드됩니다 기대.
그러나 그런 경우는 아닙니다. 내 로컬 개발 시스템에서이 문제는 자체적으로 나타나지 않습니다. 일종의 경쟁 조건이기 때문에 문제가 발생하지 않을 것입니다. 배포/준비 후에 만 자르기 때문입니다.
이({
baseUrl: 'mycode',
optimize: 'none',
out: 'all.min.js',
stubModules: ['cs', 'coffee-script'],
paths: {
...
underscore: '../lib/lodash'
},
name: 'main',
shim: {
...
}
})
사람이 어떻게 여기에 무슨 어떤 생각을 가지고 있습니까 :의 라인을 따라 r.js
에 인수로 불리는 build.js
과 함께
var _paths;
_paths = {
...
underscore: '../lib/lodash'
};
require.config({
baseUrl: '/_s/mycode/', // main.js lives here
paths: _paths,
shim: {
...
'timeago': ['jquery']
},
waitSeconds: 60
});
require(['cs!csmain']); // has all the dependencies
:
는이 같은 간단한main.js
이 ? 내 코드를 합리적인 모듈로 나눌 수있는 능력과 결합 된 RequireJS의 비동기 성격을 정말 즐긴다.하지만이 문제는 특히 스테이징/프로덕션 환경에서만 보여주기 때문에 실망 스럽다.
모든 의견과 제안을 부탁드립니다.
EDIT : 질문을 줄이기 위해 일부 불필요한 주장을 삭제했습니다.
브라이언, 일부 사이트에이 코드가 게시되어 있으므로 디버깅을 시도하여 무슨 일이 일어나는지 확인할 수 있습니까? 귀하의 구성을보고 있기 때문에 아무런 문제가 보이지 않을 것입니다. 아마도 디버깅을 할 것입니다 ... – devundef
@devundef : 의견을 주셔서 감사합니다. 나는 코드도 괜찮아 보였다고 생각했다. :) 디버깅 몇 시간 후, 난 단지 위의 문제를 좁혔습니다. jsFiddle에서 문제를 재현하고 재현 할 수는 있지만 휴식을 취해야하므로 처음에는 미쳐 가지 않습니다. :) –
가끔 코드가 우리를 미치게 만들 수 있습니다. 그렇죠? :) 그렇다면 jsFiddle에서 오류를 재현 할 수 있다면 더 좋습니다. – devundef