2016-08-09 6 views
1

dynamic mappingおよびconcunt JavascriptファイルをGrunt Uglifyで使用しようとしています。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 2つのファイルがある場合、私はbills/フォルダ内のすべてのJavascriptファイルがそう

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(このファイルには課金1 + custom.jsが含まれます) test/billing-two.min.js(このファイルは、課金-2 + custom.jsが含まれます)

私は、ファイル名にハードコードにしたくない。複数のファイルをbills/フォルダに追加している場合はインクルードがtest/フォルダに連結して出力​​する必要があります。

ご迷惑をおかけして申し訳ございません。受け入れ答えSINCE

UPDATE:

意図したとおり、これは動作することを確認するために従って更新されたコードを使用してください - うなり声を実行しているときにそうしないとエラーに遭遇します。

これを回答に追加するには、編集のために編集を送信してください。しかし、それはすべての優れた改造者を知っていることによって2回、拒否されました。実際、それは有効な入力であり、与えられた答えを改善します。 [],cwdおよびsrcの変更に注意してください。

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

答えて

1

grunt-contrib-uglifyのバナープロパティを使用してコンテンツを追加できます。ここで https://github.com/gruntjs/grunt-contrib-uglify#banner

面倒な設定です:手形フォルダ内のすべてのファイルは、バナープロパティで設定custom.jsの内容を取得する以上の構成において

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' 
 
     }, 
 
    } 
 
    });

私はそれがあなたを助けてくれることを願っています。

+0

ありがとうございます。私はドキュメントを検索し、バナーに複数のファイルを含める方法を見つけようとしています: 'banner:grunt.file.read([./javascript/account/custom.js '、./javascript/account- 2/custom.js])、 'しかし、それはうまくいきません。 – fidev

+0

上記のコメントを回避するには、複数のファイルでconcatを使用し、次にバナーに連結ファイルを含めてください – fidev

関連する問題