문제

다음과 같은 코드가 있습니다

define("ModuleA", ["InitialDependency"], function (initDep){
   return {};
});


define("ModuleB", ["ModuleA", "OtherDependency"], function (moduleA, otherDep){
   return {};
});
.

각 모듈 각각은 "modulea.js", "moduleb.js", "initialdependency.js"및 "otherDependency.js"로 정의됩니다.

이 모듈은 내 응용 프로그램에서 순차적으로로드됩니다. ModuleB는 항상 모듈리 후로드됩니다. 즉, 최적화 단계에서는 모듈러의 스크립트를 ModuleB 용 스크립트에서 결합하지 않으려고합니다. 나는 다음과 같은 를 원한다

modulea.built.js는 를 포함합니다

  • 초기화
  • modulea

    moduleb.built.js는 를 포함합니다

    • 상대방
    • moduleb

      i 그러나 모듈이로드되지 않을 수 있으므로 동일한 파일에서 모두를 원하지 않습니다.

      두 모듈 모두에 대한 빌드 스크립트를 수행 할 수 있지만 프로젝트에 몇 가지 모듈이 훨씬 많아서 시간이 많이 걸릴 수 있습니다.

      이 두 모듈을 모두 구축하기위한 빌드 스크립트를 만들려면 무엇을 알아야합니까? 동일한 종속성 패턴을 따르십시오.

도움이 되었습니까?

해결책

이를 달성하려면 modules 구성 옵션을 사용하여 재생해야합니다.

다음과 같이 보일 수 있습니다 :

{
    modules: [
        {
            name: "ModuleA",
            include: [],
            exclude: []
        },
        {
            name: "ModuleB",
            exclude: [
                "moduleA"
            ]
        }
    ]
}
.

여기에 James가 유사한 예제 설정이 있습니다 : https://github.com/requirejs/example-multipage

물론 이러한 모듈을 별도로 구축함으로써 경로를 업데이트해야 할 수 있습니다. 그렇다면 가장 좋은 방법은 Builded 앱에 대한 특별한 설정을 사용하여 require.config 호출을 포함하고 일반적인 앱 대신이 구성을 포함 하여이 구성을 포함하는 파일을 작성하는 것입니다. 그러나 당신이 좋은 분리 된 방식으로 종속성을 설정하면 아마 괜찮을 것입니다. "좋은 분리 된"방법으로, moduleA가 기본 스크립트 인 경우, moduleB로 포장 된 종속성이 없어야합니다. 그러나 이것은 상식이라고 생각합니다!

shimmed modules 정보 : Shimmed config 만 작업 WHE 파일이로드되고 R.JS가 주문 플러그인을 주문하는 경우, 귀하가 종속성 없이는 Shim 모듈을 포함하지 않도록하십시오. 100 % 확실하지 않은 것들이 전에로드 될 것입니다. 자세한 정보는 다음과 같습니다 : https://github.com/requirejs/example-multipage-shim

이 도움이되기를 바랍니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top