Gruntjs 粗声粗气。如何缩小并用结果替换原始文件?
我们将grunt用于dev和prod。对于dev,我们不执行丑陋,但是对于prod,我们执行丑陋。不幸的是,我无法将对脚本的引用从类似这样的“Gruntjs 粗声粗气。如何缩小并用结果替换原始文件?,gruntjs,grunt-contrib-uglify,Gruntjs,Grunt Contrib Uglify,我们将grunt用于dev和prod。对于dev,我们不执行丑陋,但是对于prod,我们执行丑陋。不幸的是,我无法将对脚本的引用从类似这样的“script.js”更改为“script.min.js” 我在prod环境中尝试过这样的grunt任务,但它不起作用: // uglify uglify: { options: { drop_console: true }, componet: { src: [componet.path + 'sc
script.js
”更改为“script.min.js
”
我在prod环境中尝试过这样的grunt任务,但它不起作用:
// uglify
uglify: {
options: {
drop_console: true
},
componet: {
src: [componet.path + 'script.js'],
dest: componet.path + 'script.js'
},
}
使用uglified版本更改内容“
script.js
”的最佳工作流是什么?定义grunt任务有不同的可能性,以下是一些示例:
uglify: {
options: {
drop_console: true
},
componet: {
files: [
// map one to one
{ 'path/to/minimized01.min.js': 'path/to/source01.js' },
{ 'path/to/minimized02.min.js': 'path/to/source02.js' },
// concat several sources into a minimized destination
{ 'path/to/minimized03and04.min.js': [ 'path/to/source03.js', 'path/to/source04.js' ]},
// map all files in a folder, one to one into a destination
{ expand: true,
cwd: 'path/to/a/source/folder',
src: [ '**/*.js', '!excludeThisFile.js' ],
dest: 'path/to/a/destination/folder',
ext: 'min.js' // if you want to change each extension to min.js
}
]
}
}
然后您可以将其作为grunt-uglify:component
运行。。。我总是为开发和生产设置单独的任务,对于开发,我建议使用uglify,而不丢弃控制台,并使用美化
选项。。。如果您使用源代码映射,它对在浏览器中调试非常有用。请尝试以下方法:
uglify: {
options: {
},
main: {
files: [{
expand: true,
src: ['yourpath/**/*.js'],
dest: ''
}]
}
}
看起来这是uglify的标准工作流程。是否可以完全禁用uglify for dev环境?您可以定义将运行其他任务的任务:
grunt.registerTask('production'、['clean'、'copy'、'compass:production'、'uglify']);registerTask('development',['clean','copy','watch')
然后调用grunt development
或grunt production
…例如,如果执行grunt.registerTask('dev',['copy')代码>和grunt.registerTask('prod',['uglify'])
您可以通过grunt dev
将源代码复制到dest文件夹,并通过grunt prod
在grunt contrib uglify v0.9.2中工作-刚刚使用您的配置进行验证。您应该验证componet.path+'script.js'
是否生成正确文件的有效路径,以及源文件是否存在于构建周期中的适当位置。