4
모듈 정의가 어떻게 작동하는지 궁금합니다. 예를 든다면 더 좋습니다.Requirejs modules redefinition
이define("somemodule", [], function() {return "foo";})
define("somemodule", [], function() {return "bar";})
require(["somemodule"], function (module) {console.log(module)})
그것은 반환합니다 : 같은 이름을 가진 두 개의 모듈을 차례로 정의 된 경우
, 두 번째 정의가 작동하지 않습니다
> "foo"
을하지만 우리는 모듈 후를 호출하는 경우 첫 번째 정의, 두 번째 모듈은 첫 번째 정의를 다시 정의합니다.
define("somemodule", [], function() {return "foo";})
require(["somemodule"], function (module) {console.log(module)})
define("somemodule", [], function() {return "bar";})
require(["somemodule"], function (module) {console.log(module)})
반환 :
> "foo"
> "bar"
왜 이런 방식으로 작동합니까? 사실 나는 모듈 재정의를 전혀 막을 수있는 가능성을 찾고 있습니다. 즉, 항상 "foo"를 반환하려면 위의 코드가 필요합니다.
두 번째 예제를 Firefox에로드 한 페이지에 두 번째 예제를 잘라내어 붙여 넣으면 'foo'가 두 번 나타납니다. 이는 예상했던 것과 같습니다. 다른 말로 표현하면 문제를 재현 할 수 없습니다. 최신 버전의 RequireJS를 사용하고 있는지 확인하십시오 (2.1.15는 작성 당시 최신 버전 임). – Louis
@ 루이스 그래, 문제는 내가 구형 버전 (2.0.6)을 사용하고 있다는 것이었다. 도와 주셔서 감사합니다! –