2016-08-09 3 views
1

dynamic mapping 및 Grunt Uglify 함께 concat Javascript 파일을 사용하려고합니다.동적 매핑 및 Grunt Uglify 함께 연결

다음과 같이 올바르게 작동하지 않습니다.

javascript 
    |- account 
     |- custom.js 
    |- bills 
     |- billing-one.js 
     |- billing-two.js 
    |- test 
     |- bills 
      |- billing-one.min.js (this file includes just billing-one.js) 
      |- billing-two.min.js (this file includes just billing-two.js) 
     |- account 
      |- custom.min.js (this file includes just custom.js) 

그것은이다 : 이것은 현재지고있어 무엇

javascript 
    |- account 
     |- custom.js 
    |- bills 
     |- billing-one.js 
     |- billing-two.js 
    |- test 
     |- billing-one.min.js (this file includes billing-one.js AND custom.js) 
     |- billing-two.min.js (this file includes billing-two.js AND custom.js) 

:

여기
javascript 
    |- account 
     |- custom.js 
    |- bills 
     |- billing-one.js 
     |- billing-two.js 
    |- test (output folder) 

은 내가 기대하고있는 무슨이다 : 여기

내 폴더 구조 custom.js 파일을 포함하지 않고 2 개의 폴더를 만듭니다. test/account/custom.min.js 'test/bills/bi bills/billing-one.js bills/billing-two.js

: - 'lling-one.js이 개 파일이있는 경우 나는 bills/ 폴더 내의 모든 자바 스크립트 파일 그래서

custom.js 포함 할

options: { 
    beautify: true, 
    mangle: false, 
    compress: false, 
    preserveComments: 'all' 
}, 
files: [ 
    { 
    expand: true,  // Enable dynamic expansion. 
    cwd: 'javascript/',  // Src matches are relative to this path. 
    src: [[bills/*.js'], 'account/custom.js'], // Actual pattern(s) to match. 
    dest: 'test/', // Destination path prefix. 
    ext: '.min.js', // Dest filepaths will have this extension. 
    extDot: 'first' // Extensions in filenames begin after the first dot 
    }, 
], 

위 참조 테스트/폴더가 포함될 것으로 예상됩니다.

test/billing-one.min.js (이 파일에는 billing-one + custom.js가 포함될 것입니다) test/billing-two.min.js 나는 파일 이름의 하드 코드하지 않으

(이 파일은 과금이 + custom.js 포함됩니다). 더 많은 파일이 test/ 폴더에 bills/ (가) CONCAT해야 폴더 및 출력에 추가하는 경우.

도움을 주시면 감사하겠습니다. 답변 허용 년 이후

UPDATE : - 그런트를 실행할 때 그렇지 않으면 오류로 실행하겠습니다

이 의도 한대로 작동하는지 확인하기 위해 따라 업데이트 된 코드를 사용합니다.

검토를 위해 수정 사항을 제출하여 답을 추가하려고 시도했습니다. 하지만 모든 우수 모델을 아는 사람들은 두 번 거부당했습니다. 실제로 유효한 입력이며 주어진 답을 향상시킵니다. [], cwdsrc 변경 사항에 유의하십시오.

files: [{ 
    expand: true, 
    cwd: 'javascript/bills/', 
    src: ['*.js'], 
    dest: 'test/', 
    ext: '.min.js', 
    extDot: 'first' 
}], 

답변

1

grunt-contrib-uglify의 배너 속성을 사용하여 콘텐츠를 추가 할 수 있습니다.

grunt.initConfig({ 
 
    uglify: { 
 
     options: { 
 
     banner: grunt.file.read('./javascript/account/custom.js'), 
 
     beautify: true, 
 
     mangle: false, 
 
     compress: false, 
 
     preserveComments: 'all' 
 
     }, 
 
     files: { 
 
     expand: true, 
 
     cwd: 'javascript/', 
 
     src: ['bills/*.js'], 
 
     dest: 'test/', 
 
     ext: '.min.js', 
 
     extDot: 'first' 
 
     }, 
 
    } 
 
    });

위의 구성에서 청구서 폴더의 모든 파일이 배너 속성에 구성 custom.js의 내용을 얻을 것이다 : 여기 https://github.com/gruntjs/grunt-contrib-uglify#banner

은 툴툴 구성입니다.

도움이되기를 바랍니다.

+0

감사합니다. 멋지게 작동합니다. 필자는 문서를 검색하여 배너에 여러 파일을 포함시키는 방법을 알아 내려고했습니다. 예를 들면 다음과 같습니다.'banner : grunt.file.read ([./javascript/account/custom.js ', ./javascript/account- 2/custom.js]),'그러나 그것은 작동하지 않습니다. – fidev

+0

여러 파일에 대한 concat을 사용하고 위의 설명에 대한 해결 방법을 찾은 다음 배너에 연결된 파일을 포함 시키십시오. – fidev

관련 문제