2013-10-03 1 views
2

나는 환상적인 webapp 생성기를 기반으로하지만 약간의 물건을 다르게 처리하는 yeoman 생성기에서 작업 중입니다. 한 가지 목표는 require.js 파일을 하나의 파일로 가져 오는 것입니다.그란트를 통해 require.js 스크립트 태그 바꾸기

require.js에서
<script scr="scripts/main"></script> 

이 거의없는 노력으로 작품입니다 :이

<script data-main="scripts/main" src="bower_components/requirejs/require.js"></script> 

... 나는 이것을 가지고 싶어 ... 대신 이런 의미한다.

require.config({ 
    paths: { 
     // ... 
     requireLib: '../bower_components/requirejs/require' 
    } 
}); 

require(['...', 'requireLib'], function (..., requireLib) { 
    // ... 
}); 

Gruntfile.js 부분에 붙어 있습니다. 스크립트 태그를 수정하는 가장 좋은 방법은 무엇입니까 (예 : src 및 data-main의 새 값으로 data-main의 값을 삭제 했습니까?

+0

현재 귀하의 Gruntfile에서 진행되고있는 것은 무엇입니까? – dezman

+0

대부분의 파일'yo webapp'는 약간의 수정으로 작성합니다. [The Gist] (https://gist.github.com/sontags/6813239) ...'build' 태스크가해야 할 일 아주 끝에 태그 매시 작업 ... – sontags

답변

0

혼자서 해결했습니다.

npm install grunt-regex-replace --save-dev 

을 그리고 Gruntfile.js에서이 작업을 수행 : 대한 이동 꿀꿀 - 정규식 - 대체

module.exports = function (grunt) { 
    // ... 
    require('load-grunt-tasks')(grunt); 

    grunt.initConfig({ 
     // ... 
     'regex-replace': { 
      dist: { 
       src: ['<%= yeoman.dist %>/index.html'], 
       actions: [ 
        { 
         name: 'requirejs-onefile', 
         search: '<script data-main=".*" src="bower_components/requirejs/require.js"></script>', 
         replace: function(match){ 
          var regex = /scripts\/.*main/; 
          var result = regex.exec(match); 
          return '<script src="' + result[0] + '.js"></script>'; 
         }, 
         flags: 'g' 
        } 
       ] 
      } 
     } 
    }); 
} 

실행이 ...

grunt regex-replace 

... 그리고 당신이 완료됩니다. 그건 꽤 잘 ...

건배

+0

다행이 그것을 찾으십시오! 나는 yo webapp로 프로젝트를 시작한 후 같은 단계에서 멈추었다. 내가 발견 한 모든 문제로 발전기가 황금 시간대에 준비되어 있는지 확신 할 수 없습니다. 어쨌든 이것은 uglify와 rev 작업이 main.js를 [random prefix] .main.min.js와 같은 이름으로 바꾸기 때문에 나에게 효과적이지 않으므로 스크립트에 의해 선택되지 않습니다. 만약 내가 출력 파일의 이름을 얻는 방법을 알아낼 수 있다면 그것을 수정할 수 있습니다 - 나는 경로를 알고 있습니다. 단지 하나의 .js 파일 만 가지고 있습니다. 그래서 나는 그것을 검색 할 수 있다고 생각합니다. 그러나 그것은 부서지기 쉬운 것 같습니다. –