2015-01-25 3 views
1

У меня есть файл структура, которая выглядит следующим образом (упрощенно для краткости):Менее SourceMap путь абсолютных файлов с использованием Grunt

/less/ 
    /styles.less 
/public/ 
     /css/ 
      /styles.css 
      /styles.css.map 
/gruntfile.js 

Gruntfile.js:

less: { 
    options: { 
     sourceMap: true, 
     sourceMapFilename: 'public/css/styles.css.map', 
     sourceMapURL: 'less/styles.less' 
    } 
    files: { 
     'public/css/styles.css': 'less/styles.less' 
    } 
} 

В HTML файл: <link rel="stylesheet" href="/css/styles.css">

Теперь проблема заключается в том, что в dev-инструментах styles.less указывает на /css/less/styles.less. Это явно не так, как должно быть /less/styles.less. Но я могу показать, что он указывает на корень проекта.

Я пробовал sourceMapBasepath и sourceMapRootpath вариантов без везения.

Мысли?

Другое дело в моем файле CSS (/css/styles.css), я получаю это:

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjp... */ 

Почему выход base64? Я думал, что он должен просто указывать на файл styles.css.map.

ответ

1

с хрюкать-contribe-менее 1.0.0

следующие задачи

less: { 
    options: { 
     sourceMap: true, 
     sourceMapRootpath: '/' 

    }, 
    files: {'css/t.css' : 'less/t.less'} 
    } 

}

генерировать css/t.css и css/t.css.map. Последний файл будет создан автоматически, без необходимости устанавливать sourceMapFilename.

Вышеприведенное не создает встроенную исходную карту (с выходом base64).

css/t.css заканчивается:

/* # sourceMappingURL = CSS/t.css.map */

Возможно, это зависит от вашей версии хрюкать-вно-менее, см также Does grunt-contrib-less support --source-map-map-inline? (который описывает встроенный источник карты, как вы описали)

чтения: https://github.com/gruntjs/grunt-contrib-less

sourceMapBasepath установить в /.

Почему это выход base64? Я думал, что он должен просто указывать на файл styles.css.map .

-

sourceMapFilename

Тип: String По умолчанию: нет

Написать исходный карту в виде отдельного файла с заданным именем.

+0

У меня есть 'sourceMapBasepath: '/' '. Не повезло. И не должно 'sourceMapFilename: 'public/css/styles.css.map'' заботиться о проблеме base64? – dmathisen

+1

ну, да, я быстро ответил на ваш вопрос. установите 'sourceMapRootpath: '/'' вместо 'sourceMapBasepath'. –

+0

Спасибо. Теперь, кажется, указывается меньше файла на правильный путь ('/ less/styles.less'). Но хром бросает 404 на файл, и я до сих пор получаю base64 sourceMappingUrl. – dmathisen