【问题标题】:Using properties in `Gruntfile.js` to specify a destination directory, similar to ant?使用`Gruntfile.js`中的属性来指定目标目录,类似于ant?
【发布时间】:2013-12-31 09:12:56
【问题描述】:

能否使用属性(类似于ANT)来指定使用grunt-contrib-copy复制文件的目标目录,例如:

  // Project Configuration
  grunt.initConfig({
    properties: {
        /* Templates Directory for Express.js */
        /* (Destination Directory for hjs files in nanoc_outputdir) */
        express_templates_directory: './templates',

        /* Express public directory for static files */
        /* (Here we will hold static files like *.css and images ) */
        express_public_directory: './public',

        express_css: '<%= properties.express_public_directory %>/stylesheets',

        /* The directory where nanoc outputs our templates */
        nanoc_outputdir: './output'  
     },
     /* ... */
    copy: {
            cptemplates: {
                files: [
                         {expand: true, cwd: '<%= properties.nanoc_outputdir %>/', src:'*.html', dest: '<%= properties.express_templates_directory  %>/'}
        ]
    }
} */

【问题讨论】:

  • 为什么不使用不同的配置文件?比如copy:prod、copy:test...等...

标签: node.js gruntjs grunt-contrib-copy


【解决方案1】:

我不确定是否有办法制作属性任务,但您绝对可以将其设为变量:

var properties = {
  /* Templates Directory for Express.js */
  /* (Destination Directory for hjs files in nanoc_outputdir) */
  express_templates_directory: './templates',

  /* Express public directory for static files */
  /* (Here we will hold static files like *.css and images ) */
  express_public_directory: './public',

  express_css: './public/stylesheets',

  /* The directory where nanoc outputs our templates */
  nanoc_outputdir: './output',
};

grunt.initConfig({
  copy: {
    cptemplates: {
      files: [
        {
          expand: true,
          cwd: properties.nanoc_outputdir,
          src: '*.html',
          dest: properties.express_templates_directory,
        }
      ]
    }
  }
});

【讨论】:

  • 这条线express_css: '&lt;%= properties.express_public_directory %&gt;/stylesheets' 不起作用。但是&lt;%= %&gt; 语法在下面的任务中起作用。
  • 已修复,谢谢。如果需要,您可以使用四个单独的实例变量而不是一个对象。这样,你可以说var express_css = express_public_directory + '/stylesheets';
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 2011-03-22
  • 1970-01-01
  • 2010-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多