Gruntjs 粗声粗气。如何缩小并用结果替换原始文件?

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

我们将grunt用于dev和prod。对于dev,我们不执行丑陋,但是对于prod,我们执行丑陋。不幸的是,我无法将对脚本的引用从类似这样的“
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'
是否生成正确文件的有效路径,以及源文件是否存在于构建周期中的适当位置。