使用 Usemin 时如何将分隔符添加到 Concat 选项

Posted

技术标签:

【中文标题】使用 Usemin 时如何将分隔符添加到 Concat 选项【英文标题】:How to add separator to Concat options when using Usemin 【发布时间】:2014-07-08 03:35:04 【问题描述】:

我正在使用 Grunt-usemin。但是连接的 JS 没有被 ';' 正确分隔。如何告诉 usemin 只为 JS 文件而不是 CSS 文件添加分隔符?

目前,我的 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: ')();'
    

【问题讨论】:

【参考方案1】:
 concat: 
  options: 
    process: function (src, filepath) 
      if (filepath.split(/\./).pop() === 'js') 
        return src + ';\n';
      
      return src;
    
  

进程选项说明link

该函数将文件路径拆分为一个带有 . (点)作为分隔符。 Array 中的 pop() 方法返回数组的最后一项,应该是扩展名。

【讨论】:

您能解释一下这里发生了什么并添加指向相关文档的链接吗?

以上是关于使用 Usemin 时如何将分隔符添加到 Concat 选项的主要内容,如果未能解决你的问题,请参考以下文章

如何将部分分隔符/分隔符添加到 ListView?

如何将监听器添加到分隔位置?

将分隔符添加到 QTableView 的操作?

如何将分隔符添加到 csv 文件

如何将字符串添加到 MySQL 中的字段值?

如何添加垂直分隔符?