微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

gruntjs – 我可以告诉UglifyJS只压缩和破坏所有文件,除了一些我只想连接的文件吗?

是否可以指定我想要压缩和损坏的文件和数组(认的Uglify行为),还有一个不应该被触及的文件列表,只是连接?

谢谢.

解决方法

您可以通过不同方式解决此问题.我发布了一个扩展示例来说明可以做什么:

uglify: {
    doAll: {
        options: {
            banner: '// <%= pkg.name %> - v<%= pkg.version %> - ' + '<%= grunt.template.today("yyyy-mm-dd HH:mm:ss") %>\n\n',mangle: {
                except: [ // mangle is true for all else besides the specified exceptions
                    'src/input-d.js','src/input-e.js','src/input-f.js'
                ]
            },preserveComments: 'some'
        },files: 'dest/output.min.js': [ // concatenation,uglification (mangle) with exceptions,block comments preserved,minification and a banner
            'src/input-a.js','src/input-b.js','src/input-c.js','src/input-d.js','src/input-f.js'
        ]
    },concatenateOnly: {
        options: {
            compress: false,mangle: false,preserveComments: 'all'
        },files: 'dest/output.js': [ // only concatenation
            'src/input-a.js','src/input-f.js'
        ]
    }
}

concatenateOnly任务将完全按照您的意愿执行,只能连接.您可以指定哪些文件将在那里连接.您可以使用watch任务同时运行concatenateall和doAll:

watch: {
    js: {
        files: ['config/*.js','app/js/**/*.js'],tasks: ['jshint','jasmine','uglify:concatenateOnly','uglify:doAll']
    }
}

…或者你可以通过组合我粘贴在上面的一些设置来完成一项任务,比如使用options.mangle.except来获益.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐