2013-03-06 5 views
14

grunt-contrib-requirejs 플러그인을 사용하여 GruntJS을 사용하여 최적화하려고합니다.grunt requirejs '정의가 정의되지 않았습니다.'

문제점은 내 코드가 최적화되기 전에 정상적으로 작동하고 최적화 한 후에 콘솔에 Uncaught ReferenceError: define is not defined이라고 표시됩니다.

여기 define 이름으로 Gruntfile.js

module.exports = function (grunt) { 
    grunt.loadNpmTasks('grunt-contrib-requirejs'); 

    grunt.initConfig({ 
    requirejs: { 
     compile : { 
      options : { 
       name : 'main', 
       baseUrl : ".", 
       mainConfigFile : "./main.js", 
       out : "./optimized.js", 
       preserveLicenseComments: false 
      } 
     } 
} 
    }) 

    grunt.registerTask('default', 'requirejs'); 

} 
+0

어떻게 컴파일 된 파일을로드 사용하려면 :

여기에 공식적인 답변을 참조하십시오? 'define'은 requireJs 함수이므로 requireJs를로드하지 않을 것 같습니다. –

+0

네,'requirejs'가 포함되지 않았기 때문입니다. 일단 내가 그것을로드, 아무런 오류가있어. –

+1

확인도 답변으로 추가됩니다. –

답변

8

가 requireJs는 당신이 requireJs 또는 기타 AMD 로더를로드 그리워 보인다 기능입니다입니다. 다른 AMD 모듈을로드 할 필요가 없다면 한 번 준수하십시오. almond과 같은 경량 로더 심을 사용할 수 있습니다.

-1

grunt-contrib-requirejs는 기본적으로 requirejs를 컴파일하지 않는 것으로 보입니다. concat을 사용하여 다시 요구 사항을 다시 추가 할 수 있습니다.

concat : { 
    dist : { 
    src : ['./optimized.js', 'path/to/requirejs.js'], 
    dest : './optimized.js' 
    }, 
} 

grunt.loadNpmTasks('grunt-contrib-concat'); 
12

"include"옵션으로 require.js 파일을 추가하면 작동합니다.

requirejs: { 
    compile : { 
     options : { 
      name : 'main', 
      baseUrl : ".", 
      mainConfigFile : "./main.js", 
      out : "./optimized.js", 
      preserveLicenseComments: false, 
      include: ['path/to/require.js'] 
     } 
    } 
} 
+1

비슷한 문제가 있는데 출력에 requirejs를 추가하지 않습니까? 그것은 그것이 옵티 마이저를 통과하는 것처럼 보이지 않습니다. – hybrid9

+0

예, RequireJS를 출력에 추가합니다. 이 문제에 대한 간단한 해결책이지만 축소 된 스크립트에서 더 작은 AMD 로더를 사용하는 것이 좋습니다 (수락 된 응답 참조). –

0

requirejs 스크립트가 누락되기 전에 지적한 바와 같이.

requirejs: { 
    compile: { 
    options: { 
     baseUrl: "src/js", 
     mainConfigFile: 'src/js/require.config.js', 
     paths: { 
     requireLib: "vendor/require/require" 
     }, 
     include: "requireLib", 
     name: "require.config", 
     out: "dist/js/bundle.js" 
    } 
    } 
}, 

사람들이 필요로 매우 중요있는 옵션을 및 을 포함 경로를 관찰 :

이것은 (내 gruntfile에서 찢어) 당신이 그것을 수행 공식 requirejs 페이지 알 방법입니다 정의 될 수 있습니다. requireLib-option을 require.js-file로 지정하십시오. http://requirejs.org/docs/optimization.html#onejs

관련 문제