【问题标题】:How to ignore files grunt uglify如何忽略文件 grunt uglify
【发布时间】:2013-08-26 22:19:44
【问题描述】:

背景

大约 30 分钟前,我才开始使用 grunt。所以请耐心等待。

但我有一个相当简单的脚本,它将查看我的 js,然后为我将其全部压缩到一个文件中。

代码

"use strict";
module.exports = function (grunt) {

    // load all grunt tasks
    require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);

    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        uglify: {
            options: {
                beautify: true,
                report: 'gzip'
            },
            build: {
                src: ['docroot/js/*.js', 'docroot/components/pages/*.js', 'docroot/components/plugins/*.js'],
                dest: 'docroot/js/main.min.js'
            }
        },
        watch: {
            options: {
                dateFormat: function(time) {
                    grunt.log.writeln('The watch finished in ' + time + 'ms at' + (new Date()).toString());
                    grunt.log.writeln('Waiting for more changes...');
                }
            },
            js: {
                files: '<%= uglify.build.src %>',
                tasks: ['uglify']
            }
        }
    });

    grunt.registerTask('default', 'watch');

}

问题

我的 main.min.js 每次都被包含在编译中。这意味着我的 min.js 正在获得 2x、4x、8x、16x 等。解决此问题的最佳方法是添加异常并忽略 main.min.js?

【问题讨论】:

    标签: javascript node.js gruntjs uglifyjs


    【解决方案1】:

    在 src 数组的末尾,添加

    '!docroot/js/main.min.js'
    

    这将排除它。这 !将其变为排除项。

    http://gruntjs.com/api/grunt.file#grunt.file.expand

    匹配以 ! 开头的模式的路径将从返回的数组中排除。模式是按顺序处理的,因此包含和排除顺序很重要。

    这不是特定于 grunt uglify,但任何使用 grunt 约定来指定文件的任务都将以这种方式工作。

    虽然我建议将构建文件放在源文件之外的其他位置,但作为一般建议。就像在根 dist 文件夹中一样。

    【讨论】:

    • 非常感谢,当它发生的时候我就想到了。但是,很高兴知道:)
    • 只是想再次强调end位的重要性
    • 这里结束很重要。同意@trkaky
    • 您好,这似乎不适用于 src 文件掩码 path/to/files/**/*js 。因此 src: ['web/js/**/*.js', '!web/js/bin/file1.js', '!web/js/bin/file2.js'] 不会忽略 file1.js 和 file2.js 。你有没有遇到过这个问题?是因为我试图忽略子文件夹中的文件吗?
    • @FedericoCapaldo 在使用 src 文件掩码时排除多个文件。我只是将排除的文件放入 src 末尾的数组中。 src: ['web/js/**/*.js', ['!web/js/bin/file1.js', '!web/js/bin/file2.js']] 这对我来说很好用
    猜你喜欢
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    相关资源
    最近更新 更多