2014-10-14 4 views
0

지난 몇일 동안 나는 그루터 - 중성자에 관한 문제에 직면 해 있습니다, 그것은 파일의 내용을 복제합니다.그란트 중성자 중복 콘텐츠

내 소스 폴더 구조 :

javascript/ 
    main.js (with @import()'s) 
    routes/ 
     route_home.js 
     route_about.js 
     route_contact.js 
     route_products.js 

내 대상 폴더 구조는 원본과 같아야하고 나는 그것을 바로 얻을.

 neuter: { 
     main: { 
      options: { 
       filepathTransform: function (filepath) { 
        return config.app + '/' + filepath; 
       } 
      }, 
      files: [{ 
       expand: true, 
       cwd: '<%= config.app %>/public/js', 
       src: ['*.js'], 
       dest: '<%= config.dist %>/scripts' 
      }] 
     }, 
     routs: { 
      options: { 
       filepathTransform: function (filepath) { 
        return config.app + '/' + filepath; 
       } 
      }, 
      files: [{ 
       expand: true, 
       cwd: '<%= config.app %>/public/js/routs/', 
       src: ['**/*.js'], 
       dest: '<%= config.dist %>/scripts/routs' 
      }] 
     } 
    }, 

내가 그것 때문에 주 전에, 두 가지로이 작업을 splited : 중성 경로 파일 (route_home.js == route_about.js 등)

중성 작업 동일한 콘텐츠를 한 후에하는 것이 뭐가 문제 . js 콘텐츠는 routes 파일과 동일합니다.

(방랑에서 실행 우분투 14.04) 업데이트

:

여전히 그렇게 할 수있는 올바른 방법을 얻을 수 없습니다.

그럼, 몇 가지 예를 들어 보겠습니다. 누구든지 나를 도울 수 있습니다.

//route_about.js 

route_houme.js :

//route_home.js 

그리고이 출력 route_about.js입니다 :

(function() { 

//route_about.js 

})(); 

route_houme.js

이 두 경로 인 콘텐츠 route_about.js를 파일 :

(function() { 

(function() { 

//route_about.js 

})(); 

})(); 

(function() { 

//route_home.js 

})(); 

첫 번째 파일은 정상이지만 second는 첫 번째 내용을 function()으로 둘러싸고 두 번째 파일 내용을 추가합니다.

아니면이 작업을 수행하는 모든 중재자를 제공 할 수 있습니까?

어떤 도움을 주셔서 감사합니다.

답변

0

오랜 연구 끝에 Grunt-neuter 플러그인에 문제가 있음을 알게되었습니다. 몇 가지 사항을 변경했는데 이제는 제대로 작동합니다.

중성 작업을 들여다 보면 두 개의 변수 'requested'와 'out'마녀가 모든 파일에 대한 매개 변수를 포함하고 있음을 알 수 있습니다. 문제는 이러한 변수가 마지막 파일 반복의 이전 값을 포함한다는 것입니다. 이 문제를 해결하려면 다음 행을 추가해야합니다.

  }); 

    **required = []; //at 144 line** 

    // test if template block has newlines to offset against 
    var m, n, beforeOffset, afterOffset; 

{...} 

     grunt.file.write(file.dest + ".map", JSON.stringify(newSourceMap, null, ' ')); 
     } 
    **out = []; //at line 200** 
});