回答

2

首先,你需要確保咕嚕-的contrib少是運行支持源地圖版本。最新的版本是0.9.0,所以更新您的package.json文件中使用的版本,像這樣:在命令行

"dependencies" : { 
    ...[other dependencies]... 
    "grunt-contrib-less" : "0.9.0" 
} 

現在,打電話npm install來安裝更新。


接下來,在您的Gruntfile.js中爲您的項目配置源地圖。

你可以在這裏跟隨指南:http://robdodson.me/blog/2012/12/28/debug-less-with-chrome-developer-tools/或在這裏:http://roots.io/using-less-source-maps/,但這裏是一個示例配置:

less : { 
     development : { 
      options : { 
       strictImports : true, 
       sourceMap: true, 
       sourceMapFilename: '../css/common.css.map', 
       sourceMapURL: 'http://localhost/css/common.css.map' 
      }, 
      files : { 
       '../css/common.css' : '../less/common.less' 
      } 
     }, 
    }, 

的關鍵是確保無論您使用sourceMapURL是可以在打開一個實際的URL瀏覽器。

12

這是我的gruntfile.js,它的工作原理。

它更新到grunt-contrib-less v0.9.0 使用「XXX.css.map」而不是「XXX.map」也很重要。並且在給出適當的sourcebasepath之後它就工作了。進一步下面,我會張貼結果.map文件的摘錄。

gruntfile.js

module.exports = function(grunt) { 
    grunt.initConfig({ 
    less: { 
     development: { 
     options: { 
      compress: false, 
      yuicompress: false, 
      optimization: 2, 
      sourceMap: true, 
      sourceMapFilename: "assets/style/bootstrap.css.map", 
      sourceMapBasepath: "assets/style/" 
     }, 
     files: { 
      // target.css file: source.less file 
      "assets/style/bootstrap.css": "assets/style/bootstrap.less" 
     } 
     } 
    }, 
    watch: { 
     styles: { 
     // Which files to watch (all .less files recursively in the less directory) 
     files: ['assets/style/theme/**/*.less'], 
     tasks: ['less'], 
     options: { 
      nospawn: true 
     } 
     } 
    } 
    }); 

    grunt.loadNpmTasks('grunt-contrib-less'); 
    grunt.loadNpmTasks('grunt-contrib-watch'); 

    grunt.registerTask('default', ['watch']); 
}; 

這是從與lessc生成的.map文件這當然工作的摘錄:

{"version":3,"file":"bootstrap.css","sources":["theme/page-welcome.less","bootstrap-2.3.2/mixins.less"... 

這是從一個摘錄。使用grunt-contrib-less 0.9.0生成的地圖文件也適用:

{"version":3,"sources":["theme/page-welcome.less","bootstrap-2.3.2/mixins.less","theme/page-work.less"... 

親切的問候, 斯蒂芬

+1

這是一個偉大的答案和作品,我希望他們能增加對'--source-地圖地圖inline',這樣它會是這麼簡單的支持因爲它包含內嵌CSS的地圖,不需要basepath和一個單獨的地圖文件 - 非常適合開發。 –

相關問題