为开发人员和生产人员咕unt咕unt?

时间:2018-10-16 11:39:12

标签: sass gruntjs

如何为开发人员和生产人员设置grunt-contrid-sass的不同任务? 我需要不同的css文件-有和没有sourcemaps。

我尝试过:

sass: {
dev: {
    options: {
        sourcemap: 'inline',
    },      
},      
prod: {
    options: {
        sourcemap: 'none',
    },      
},
      files: {
        expand: true,
        cwd: 'static/compass/sass/pages/redesign/',
        src: ['**/*.scss'],
        dest: 'static/compass/css/pages/redesign/',
        ext: '.css'
      },
  },

但是在这种情况下,sass:dev任务不会编译任何文件。

当我尝试:

sass: {
dev: {
    options: {
        sourcemap: 'inline',
    },      
      files: {
        expand: true,
        cwd: 'static/compass/sass/pages/redesign/',
        src: ['**/*.scss'],
        dest: 'static/compass/css/pages/redesign/',
        ext: '.css'
      },

},      
prod: {
    options: {
        sourcemap: 'none',
    },      
      files: {
        expand: true,
        cwd: 'static/compass/sass/pages/redesign/',
        src: ['**/*.scss'],
        dest: 'static/compass/css/pages/redesign/',
        ext: '.css'
      },

},
  }

我收到一条警告,建议您使用“ --force”。但是即使使用“ --force”,我也不会得到编译文件。

有什么办法吗?

1 个答案:

答案 0 :(得分:0)

您的第二个示例接近应有的示例。但是,每个files属性的值都应该是一个包含对象的数组,如文档中的this example所示。

例如,应为:

files: [{
  //...
}]

files: {
  //...
}

将您的saas任务改为以下内容:

sass: {
  dev: {
    options: {
      sourcemap: 'inline'
    },      
    files: [{ // <-- change this
      expand: true,
      cwd: 'static/compass/sass/pages/redesign/',
      src: ['**/*.scss'],
      dest: 'static/compass/css/pages/redesign/',
      ext: '.css'
    }] // <-- change this
  },
  prod: {
    options: {
      sourcemap: 'none'
    },      
    files: [{ // <-- change this
      expand: true,
      cwd: 'static/compass/sass/pages/redesign/',
      src: ['**/*.scss'],
      dest: 'static/compass/css/pages/redesign/',
      ext: '.css'
    }] // <-- change this
  }
}

编辑

注意:您还应该考虑更改destdev目标(或两者)中的prod路径,因为当前它们是相同的路径,即如果您同时运行sass:prodsass:dev,则一个任务的输出将被另一个任务覆盖。