5

我是 grunt 的新手(实际上是今天安装并使用它),它很棒,但我无法解决问题。

我有一个 angularJs 项目,我想将我所有的 javascript 文件合并为 3 个文件。

所以我会

"base" - 插件等的所有供应商 JavaScript 文件

“app” - 所有用户使用的所有控制器等

“admin” - 使用的所有控制器等,但只能由管理员访问

现在我已经安装了 grunt 并为 concat 设置了我的任务,但是我怎样才能拥有多个 dest 和 src 属性?

grunt 文件示例

grunt.initConfig({
    // Metadata
    pkg: grunt.file.readJSON('package.json'),
    concat: {
        options: {
            stripBanners: true
        },
        dist: {
            src: ['Scripts/jquery-*.js', '!Scripts/jquery-*.min.*', '!Scripts/jquery-*.intellisense.*', 'Scripts/bootstrap.js', 'Scripts/respond.js', 'js/**/*.js'],
            dest: 'dist/app.js'
        },
        distCss: {
            src: ['Content/bootstrap.css', 'Content/site.css'],
            dest: 'dist/app.css'
        }
    },
});

一旦我弄清楚了这一点,我可以有多个 ugilify 属性来 ugilify 创建的每个 js 文件吗?

4

1 回答 1

6

当你运行 grunt 时,你可以设置单独的任务来执行。每个任务将连接不同的来源。

来自grunt-contrib-concat

在此示例中,运行 grunt concat 将构建两个单独的文件。一个“基本”版本,主文件基本上只是复制到 dist/basic.js,另一个“with_extras”连接版本写入 dist/with_extras.js。

grunt.initConfig({
  concat: {
    basic: {
      src: ['src/main.js'],
      dest: 'dist/basic.js',
    },
    extras: {
      src: ['src/main.js', 'src/extras.js'],
      dest: 'dist/with_extras.js',
    },
  },
});

之后,您需要使用grunt-contrib-uglify插件来缩小来自 grunt-concat 的输出文件。

于 2015-01-13T10:15:37.003 回答