【问题标题】:Grunt dynamic file mapping generates excessive pathsGrunt 动态文件映射生成过多路径
【发布时间】:2015-01-13 10:39:11
【问题描述】:

我正在使用以下内容:

var path = require('path');

module.exports = function(grunt) {

  grunt.initConfig({
    less: {
      options: {
        paths: '/',
        yuicompress: false,
        ieCompat: true,
        compress: false,
        sourceMap: true,
        sourceMapFilename: 'alice/public/local/less/intfarm.css.map',
        require: [
          'alice/public/local/less/intfarm.less'
        ]
      },
      src: {
        expand: true,
        src: ['alice/public/local/less/*.less'],
        ext: '.css',
        dest: 'alice/public/local/css/local/compiled/',
      }
    },
  });

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

我不明白为什么还会为“dest”路径生成“src”路径..:

/alice/public/local/css/local/compiled/alice/public/local/less/account.css

我期待:

/alice/public/local/css/local/compiled/account.css

【问题讨论】:

    标签: css gruntjs less


    【解决方案1】:

    这是因为您没有使用cwd 选项。 src 选项包含 matching patterns,它解析为相对于 cwd 路径的路径。简单来说,src 中匹配的所有文件路径都会在dest 结果中。

    所以你需要以下配置来解决你的问题。

    src: {
        expand: true,
        cwd: 'alice/public/local/less/',
        src: ['*.less'],
        ext: '.css',
        dest: 'alice/public/local/css/local/compiled/',
      }
    

    【讨论】:

    • flatten 在您的情况下有所帮助,此选项只会使结果成为平面树。但如果有人想保留目录结构,例如,这将无济于事。 /header/logo.css
    • 那是我不想保留结构的东西,因为源和目标的路径完全不同..(或者我错了吗?)
    • 是的,您可以使用任何适合您的方法 :) 我只是想解释它为什么有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多