Задача SASS в gulp с sourceComments: ‘map’ выдает ‘Ошибка утверждения’

#javascript #node.js #sass #gulp

#javascript #node.js #sass #gulp

Вопрос:

У меня есть веб-приложение, которое я разрабатываю с использованием AngularJS, D3, Pixi.js , и gulp как система сборки. Все это отлично работает вместе, за исключением gulp-sass . Вот соответствующий код:

 gulp.task('sass-dev', ['clean-dev'], function() {
  return gulp.src( cfg.appFiles.rootSass )
    .pipe( sass({ errLogToConsole: true }))
    .pipe( gulp.dest( cfg.buildDir cfg.destDirs.css  ) )
    .pipe( livereload( server ) );
});
  

cfg это просто переменная с предопределенными глобусами. Если я сделаю третью строку

  .pipe( sass({ errLogToConsole: true, sourceComments: 'map' }))
  

добавляя сопоставление источника (полезно для отладки), я получаю следующую фатальную ошибку.

 Assertion failed: (val->IsString()), function _NanGetExternalParts, file ../node_modules/nan/nan.h, line 1725.
Abort trap: 6
  

На компьютере моего коллеги он отлично работает с отображением или без него. В моем случае он терпит неудачу каждый раз, когда сопоставляются исходные комментарии, и отлично работает без сопоставления. На обоих компьютерах установлены iMac с последней версией node ( npm ), bower , и OS X .

Есть идеи, что может быть причиной этого? Проблема в gulp или gulp-sass сама по себе?

Комментарии:

1. Какая версия Sass используется в обеих системах?

2. @cimmanon Мы используем gulp-sass 0.7.1

3. Во-первых: пожалуйста, прочитайте документы: https://github.com/sass/node-sass . Второе: вам нужен параметр файла.

4. Файлы — это то, что передается в команду sass. И я прочитал документы. Пожалуйста, смотрите github.com/dlmanning/gulp-sass поскольку мы используем gulp в качестве системы сборки. Пример из их документов: var gulp = require('gulp'); var sass = require('gulp-sass') gulp.task('sass', function () { gulp.src('./scss/*.scss').pipe(sass()).pipe(gulp.dest('./css')); });

5. У меня точно такая же проблема — за исключением ubuntu. У кого-нибудь уже есть решение или обходной путь?

Ответ №1:

Эти параметры сработали для меня.

 { errLogToConsole: true, sourceComments: 'map', sourceMap: 'sass' }.
  

Всегда кажется, что происходит что-то странное.

Комментарии:

1. Вы правы. Как только я добавил комментарий к sourceMap, он сработал, казалось бы, без причины. Ну что ж!

2. Я получаю ошибку сегментации (сброс ядра) в Ubuntu, используя эти параметры, есть идеи, почему?

3. Понятия не имею. Нет Ubuntu для проверки.

Ответ №2:

В моем случае причиной был пустой файл scss. Добавление комментария к файлу или удаление файла scss решило эту проблему