咕噜丑化。如何缩小并用结果替换原始文件?

Grunt uglify. How to minify and replace original file with result?

我们正在为开发和生产使用 grunt。对于开发,我们不执行 uglify,但对于生产,我们执行。不幸的是,我无法将对脚本的引用从这样的“script.js”更改为“script.min.js”。

我已经为产品环境尝试过这样的 grunt 任务,但它不起作用:

// uglify
uglify: {
    options: {
        drop_console: true
    },
    componet: {
        src:  [componet.path + 'script.js'],
        dest: componet.path + 'script.js'
    },
}

使用丑化版本更改内容“script.js”的最佳工作流程是什么?

定义 g运行t 任务有不同的可能性,这里有一些例子:

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,不要删除控制台,并使用 beautify 选项...如果使用源映射会更好,它对于在浏览器中进行调试非常有用。

试试这个:

uglify: {
    options: {

    },
    main: {
        files: [{
            expand: true,
            src: ['yourpath/**/*.js'],
            dest: ''
        }]
    }
}