2013-10-22 4 views
1

상당히 큰 프로젝트를 축소하려고 r.js를 사용했으며 텍스트 플러그인에 문제가 있습니다.RequireJS Optimizer throw ReferenceError : 텍스트가 정의되지 않았습니다.

빌드 파일

({ 

    name: '../main', 

    baseUrl: '../../js/app', 

    appDir: "./app", 

    dir: 'build', 

    paths: { 

     jquery: '../lib/jquery/jquery-1.10.2.min', 
     underscore: '../lib/underscore/underscore-min', 
     backbone: '../lib/backbone/backbone-min', 
     text: '../lib/require/text', 
     picker: '../lib/pickadate/picker', 
     pickerDate: '../lib/pickadate/picker.date', 
     pickerLegacy: '../lib/pickadate/legacy' 
    }, 

    mainConfigFile : '../js/main.js' 

}) 

홈페이지 구성 파일 참조가 위의 모든 정확한 검증

requirejs.config({ 

    baseUrl: 'js/app', 

    paths: { 

     jquery: '../lib/jquery/jquery-1.10.2.min', 
     underscore: '../lib/underscore/underscore-min', 
     backbone: '../lib/backbone/backbone-min', 
     text: '../lib/require/text', 
     picker: '../lib/pickadate/picker', 
     pickerDate: '../lib/pickadate/picker.date', 
     pickerLegacy: '../lib/pickadate/legacy' 
    }, 

    shim: { 
     picker: ['jquery', 'pickerLegacy'], 
     pickerDate: { 
      deps: ['jquery', 'picker'], 
      exports: 'DatePicker' 
     }, 
     backbone: { 
      deps: ['underscore', 'jquery'], 
      exports: 'Backbone' 
     }, 
     underscore: { 
      exports: '_' 
     }, 
     text : { 
      exports : 'text' 
     } 
    } 

}); 

: 나는 Node.js를 다음과 같이가는 빌드 파일을 사용하고 있습니다. 나는 이것을 컴파일하려고 할 때마다, 나는 콘솔에 다음과 같은 출력을 얻을 :

node r.js -o app.build.js 

Tracing dependencies for: ../main 
ReferenceError: text is not defined 
In module tree: 
    ../main 
     app 
     router 
      views/pages/home 
      views/panel/allStoresPanel 
       text 

Error: ReferenceError: text is not defined 
In module tree: 
    ../main 
     app 
     router 
      views/pages/home 
      views/panel/allStoresPanel 
       text 

    at eval (eval at <anonymous> (C:\code\Web\DixonsDashboard\deploy\_compiler\r.js:23699:64), <anonymous>:1:1) 

나는 그것이 텍스트가 undefined로 발견 왜 아무 생각이 없습니다. 사이트에 대한 경로는 분명히 정확합니다. 사이트는 현재 확장 된 형식의 매력처럼 작동합니다. r.js에서 사용할 수있는 모든 옵션을 시도했지만 그 중 아무 것도 차이를 내지 않는 것 같습니다.

파일을 삭제하면 "해당 파일 또는 디렉토리 없음"오류가 발생하여 파일을 찾은 것 같습니다.

아무도 내가 여기에서 빠진 것을 지적 할 수 있습니까?

+0

내가 따르는 규칙은'baseUrl'은 스크립트를 포함하는 폴더입니다. * 그들을로드하는 HTML 페이지와 관련하여 ** ** build.js *와 관련이 없습니다 **. 이것에 따르면 빌드 파일과 설정 파일에 대한'baseUrl'은 동일합니다. 시도해 볼 수 있니? –

+0

나는 그것을 시도했지만 다른 많은 오류가 발생했습니다. 불행하게도 동일한 결과를 가진 메인 모듈이있는 디렉토리에 컴파일러 스크립트를 옮겼습니다. =/ – Khior

답변

5

이 아닌 AMD 호환 플러그인에 대해서만 shim을 구성하십시오. "텍스트"플러그인은 이미 AMD 호환이므로 shim 메커니즘을 통해 실행하면 실제로 깨집니다.


난 그냥 코드의 단순화 된 버전으로 테스트했습니다 :이 빌드 잘 작동하게 제거 : "텍스트 정의되지 않은 ReferenceError가"가 보여 않는 shim 섹션에 텍스트를 포함.

+0

다음에 내 repo에 액세스 할 수있을 때이 스크립트를 완전히 시험해보고 어떻게되는지 알려줍니다. – Khior

+0

나는 너에게 키스 할 수있어! 당분간 진드기로 충분할 것입니다 ... – Khior

+0

문제 없습니다. 도움이 되었기 때문에 기쁩니다. – kryger