SASS task in gulp with sourceComments: 'map

2020-07-21 07:32发布

问题:

I have a web app I'm developing using AngularJS, D3, Pixi.js, and gulp as a build system. It all works great together, except gulp-sass. Here's the relevant code:

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 is just a variable that has predefined globs. If I make the third line

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

by adding the mapping of the source (useful for debugging), I get the following fatal error.

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

On my colleague's computer, it works perfectly with or without mapping. On mine, it fails every time with the source comments mapped, and works perfectly without mapping. Both computers are iMacs running the latest version of node (npm), bower, and OS X.

Any idea what could be causing this? Issue in gulp or gulp-sass itself?

回答1:

These options worked for me.

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

There's always seems to be something weird going on.



回答2:

In my case, the cause was an empty scss file. Adding a comment to the file, or removing the scss file, solved this problem