Grunt如何监视子文件夹src,并将输出放在同一个子目录中?

时间:2016-07-01 03:18:32

标签: sass gruntjs directory subdirectory

我是NodeJs和Grunt的新手,我想问一个可能已经回答的问题,但我要么无法理解解决方案,要么找不到它。

所以,我有www文件夹,里面有许多带项目的子文件夹。每个项目都有相同的文件夹,

--css/style.css
--sass/style.scss
--js/script.js + /1.js + /2.js 
--build/script.js
--build/style.css

带有grunt的我的Gruntfile.js在www文件夹中,我的grunt concat是这样的:

grunt.initConfig({
concat: {
  dist: {
    src: ['**/js/1.js', '**/js/2.js', '**/js/script.js'],
    dest: '**/build/script.js'
  },
},
});

现在,您可能会看到问题,我收到错误“无法创建目录C / wamp / www / ** ...,我需要能够选择与找到js相同的文件夹(和后来的CSS和其他任务)。

需要最简单的解决方案,我计划使用concat,watch,uglify,sass(也欢迎使用sass解决方案)。

如果重复这个问题,我很抱歉,但我找不到答案。

2 个答案:

答案 0 :(得分:0)

第一

Concat并uglify your js:

    concat.dev = {
     files: {
       "public/myapp.development.js": [
         "with-bootstrap/public/js/vendor", "with-bootstrap/public/js/**/*.js"
       ]
     }
   };


   //Uglify ===============================
   config.uglify = {
     dist: {
       options: {
         sourceMap: "public/myapp.production.js.map"
       },
       files: {
         "public/myapp.production.js": ["public/myapp.development.js"]
       }
     }
   }

和你的sass:

//Sass ===============================
var sass;
config.sass = sass = {};

//distribution
sass.dist = {
  options: {
    style: "compressed",
    noCache: true,
    sourcemap: 'none',
    update: true
  },
  files: {
    "<%= src.distFolder %>": "<%= src.sassMain %>"
  }
};

//development env.
sass.dev = {
  options: {
    style: "expanded",
    lineNumber: true,
  },
  files: {
    "<%= src.devFolder %>": "<%= src.sassMain %>"
  }
};

在这种情况下观察您的更改我正在观看sass目录:

 //Watch ===============================
    config.watch = {
      scripts: {
        files: ["<%= src.libFolder %>", "<%= src.sassFolder %>"],
        tasks: ["dev", "sass:dist"]
          //,tasks: ["dev",'sass:dist']
      }
    }
无论如何,我希望这有助于你开始。

答案 1 :(得分:0)

您不能对DefaultTableModel modeloT = new DefaultTableModel() { // Defining the type of column on your JTable. I wish sort my second column as a numeric (1,2,11), not String (1,11,2). For that I defined the second class as Integer. Class[] types = { String.class, Integer.class, String.class }; boolean[] canEdit = new boolean [] { false, false, false }; // You must add this Override in order to works sorting by numeric. @Override public Class getColumnClass(int columnIndex) { return this.types[columnIndex]; } // This override is just for avoid editing the content of my JTable. @Override public boolean isCellEditable(int row, int column) { return false; } }; 值使用globbing模式,因为globbing用于匹配模式。你需要一个单独的src - &gt; 每个项目子文件夹的目标映射。有几种方法可以做到这一点,但我会使用Files Object Format。假设项目子文件夹名为proj1 /和proj2 /,配置将如下所示:

dest

如果要继续添加项目子文件夹,可能需要动态构建concat配置:

concat: {
    dist: {
        files: {
            'proj1/build/script.js': 'proj1/js/*.js',
            'proj2/build/script.js': 'proj2/js/*.js'
        }
    }
}