簡體   English   中英

grunt-contrib-concat:指定要串聯的最后一個文件?

[英]grunt-contrib-concat: specify last file to be concatenated?

我正在使用grunt-contrib-concat將所有自定義JS文件連接在一起,並用IIFE包裹它們。 我遇到了一些加載順序問題(即,我的初始化文件在某些​​模塊之前執行,導致未定義的錯誤)。 我想指定init.js在concat順序中應該為LAST,但是我也不想為所有其他JS文件指定順序,只是這個特定的最后一個。

這是我的concat的當前配置:

/**
 * Set project info
 */
project: {
  src: 'src',
  app: 'app',
  assets: '<%= project.app %>/assets',
  css: [
    '<%= project.src %>/scss/style.scss'
  ],
  js: [
    '<%= project.src %>/js/*.js'
  ]
},

concat: {
  dev: {
    files: {
      '<%= project.assets %>/js/scripts.min.js': '<%= project.js %>'
    }
  },
  options: {
    stripBanners: true,
    nonull: true,
    banner: ';(function($, window, document, undefined){ \n "use strict";',
    footer: '}(jQuery, window, document));'
  }
},

如何在不向我的項目中添加額外的grunt模塊的情況下指定要串聯的最后一個文件?

您可以通過連接所有的文件,但這樣做init.js ,然后連接,結果init.js ,使用維持秩序的數組語法:

concat: {
    dev1: {
        dest: '<tmp>/concat1.js',
        src: ['<all your js>', '!init.js']
    },
    devFinal: {
        options: {
            stripBanners: true,
            nonull: true,
            banner: ';(function($, window, document, undefined){ \n "use strict";',
            footer: '}(jQuery, window, document));'
        },
        files: {
            dest: 'scripts.min.js',
            src: ['<tmp>/concat1.js', 'init.js']
        },
    },
}

然后依次調用兩個目標:

grunt.registerTask('myConcat', ['concat:dev1', 'concat:devFinal']);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM