如何在多个项目中使用gruntjs指南针监视

时间:2017-01-03 17:50:06

标签: sass gruntjs compass

在服务器上使用带有多个项目的指南针是否有gruntjs配置? 我的文件夹结构如下:

[PROD]
 [project1]
  [css]
   styles.css
  [js]
   functions.js
  index.php
  [scss]
   styles.scss

 [project2]
  [css]
   styles.css
  [js]
   functions.js
  index.php
  [scss]
   styles.scss

 [project3]
  [css]
   styles.css
  [js]
   functions.js
  index.php
  [scss]
   styles.scss

 [TEST]
  [project1]
   [css]
    styles.css
   [js]
    functions.js
   index.php
   [scss]
    styles.scss

  [project2]
   [css]
    styles.css
   [js]
    functions.js
   index.php
   [scss]
    styles.scss

  [project3]
   [css]
    styles.css
   [js]
    functions.js
   index.php
   [scss]
    styles.scss

n.b。是的,测试文件夹在生产文件夹中。 我需要运行自动观察器,我同时处理更多项目。

1 个答案:

答案 0 :(得分:0)

我更喜欢没有罗盘编译scss。 这是我最终的grunt脚本代码,它只编译修改过的文件。

module.exports = function(grunt) {

grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),

    watch: {
     sass: {
         files: [
             'pippo/*/scss/*.scss',
             'pippo/test/*/scss/*.scss'
         ],
         tasks: ['sass'],
         options: {
             spawn: false
         }
     }
  },

  sass: {
    dist:{
      options: {
          style: 'compressed'
      },
      files: {
        'pippo/test/statics/css/ie.css' : 'pippo/test/statics/scss/ie.scss'
      }
    }
  }

});

grunt.event.on('watch', function(action, filepath) {
  var filepath_scss = filepath;
  var filepath_css = filepath.replace("scss", "css");
  filepath_css = filepath_css.replace("scss", "css");
  var finalpath = {};
  finalpath[filepath_css] = filepath_scss;
  grunt.config('sass.dist.files', finalpath );
});

grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default',['watch']);
};