grunt-usermin 为什么替换不了html中的资源引用url?

发布于 2022-09-06 01:08:08 字数 2930 浏览 16 评论 0

module.exports = function (grunt) {
    'use strict';
    grunt.initConfig({
        clean: {
          src: ['css', 'js']
        },
        cssmin: {
            /*压缩 CSS 文件为 .min.css */
            options: {
                keepSpecialComments: 0 /* 移除 CSS 文件中的所有注释 */
            },
            minify: {
                expand: true,
                cwd: 'css/',
                src: ['*.css'],
                dest: 'css/',
            }
        },
        uglify: {
          options: {
              // 此处定义的banner注释将插入到输出文件的顶部
              banner: '/*! json 1.0.0 最后修改于:<%= grunt.template.today("yyyy-mm-dd") %> */\n'
          },
            minjs: { //最小化、混淆所有 js/ 目录下的 JavaScript 文件
                files: [{
                    expand: true,
                    cwd: 'js/',
                    src: ['*.js'],
                    dest: './js/',
                    //ext: '.min.js'
                }]
            }
        },
        filerev: {
            options: {
                algorithm: 'md5',
                length: 8,
                process: function(basename, name, extension) {
                  return basename+'.'+name+'.min.'+extension;
                },
            },
            js: {
                src: 'public/js/common/js/*.js',
                dest: 'js/'
            },
            css: {
                src: 'public/css/common/css/*.css',
                dest: 'css/'
            }
        },
        useminPrepare: {
          html: 'application/views/**/*.tpl',
          options: {
            dest: 'dist'
          }
        },
        usemin: {
          html: 'application/views/**/*.tpl',
          options: {
            assetsDirs: ['css/', 'js/'],
            patterns: {
              html: [
                          [
                            "([^/]+?\.js)",
                            'Update the HTML to reference our concat/min/revved script files'
                          ],
                          [
                            "([^/]+?\.css)",
                            'Update the HTML with the new css filenames'
                          ]

                ]
            }
          }
        }
    });

    grunt.loadNpmTasks('grunt-contrib-clean');
    grunt.loadNpmTasks('grunt-filerev');
    grunt.loadNpmTasks('grunt-contrib-cssmin');
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-usemin');
    require('time-grunt')(grunt);

    // 定义默认任务
    grunt.registerTask('default', ['clean', 'filerev', 'useminPrepare', 'cssmin:minify', 'uglify:minjs', 'usemin']);
};

这是我的Gruntfile.js

我的html目录在: 开发根目录/application/views/*/.tpl。

js和css都能成功发布在开发根目录的 js和css目录下.
如图:

clipboard.png

但是不知道为什么 html中的资源url不能被正确的替换,还请有经验的同学指导一下.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

紧拥背影 2022-09-13 01:08:08

你可以试一下最后单独执行一个usemin的任务

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文