9

Grunt-usemin を使用しています。しかし、連結された JS は「;」で適切に区切られていません。CSS ファイルではなく JS ファイルのみに区切り記号を追加するように usemin に指示するにはどうすればよいですか?

現在、私の usemin タスクは次のようになっています。

    useminPrepare: {
        options: {
            dest: '<%= config.dist %>'
        },
        html: '<%= config.app %>/index.html'
    },

    // Performs rewrites based on rev and the useminPrepare configuration
    usemin: {
        options: {
            assetsDirs: ['<%= config.dist %>', '<%= config.dist %>/images']
        },
        concat: {
            separator: ';'
        },
        html: ['<%= config.dist %>/{,*/}*.html'],
        css: ['<%= config.dist %>/styles/{,*/}*.css']
    },

別の使用例は、連結された各モジュールを IIFE にラップすることです。これにはこの構成が必要ですが、*.js ファイルにのみ適用する必要があります。

concat: {
    options: {
        banner: ';(function () {',
        separator: '})(); (function () {',
        footer: '})();'
    }
}
4

1 に答える 1

4
 concat: {
  options: {
    process: function (src, filepath) {
      if (filepath.split(/\./).pop() === 'js') {
        return src + ';\n';
      }
      return src;
    }
  }
}

プロセスオプションリンクの説明

この関数は、ファイルパスを で配列に分割します。(ドット) を区切り記号として使用します。Array の pop() メソッドは、拡張子である配列の最後の項目を返します。

于 2015-08-18T06:24:42.233 に答える