made dart sass default

master
selfisekai 2020-11-06 12:24:25 +01:00
parent bcf64926b8
commit 148502cd95
2 changed files with 33 additions and 17 deletions

View File

@ -1,3 +1,6 @@
/* eslint-disable global-require */
/* eslint-disable import/no-extraneous-dependencies */
const chalk = require('chalk');
const PluginError = require('plugin-error');
const replaceExtension = require('replace-ext');
@ -9,9 +12,9 @@ const applySourceMap = require('vinyl-sourcemaps-apply');
const PLUGIN_NAME = 'gulp-sass';
//////////////////////////////
// ////////////////////////////
// Main Gulp Sass function
//////////////////////////////
// ////////////////////////////
const gulpSass = (options, sync) => through.obj((file, enc, cb) => { // eslint-disable-line consistent-return
if (file.isNull()) {
return cb(null, file);
@ -59,9 +62,9 @@ const gulpSass = (options, sync) => through.obj((file, enc, cb) => { // eslint-d
opts.sourceMapContents = true;
}
//////////////////////////////
// ////////////////////////////
// Handles returning the file to the stream
//////////////////////////////
// ////////////////////////////
const filePush = (sassObj) => {
let sassMap;
let sassMapFile;
@ -106,9 +109,9 @@ const gulpSass = (options, sync) => through.obj((file, enc, cb) => { // eslint-d
cb(null, file);
};
//////////////////////////////
// ////////////////////////////
// Handles error message
//////////////////////////////
// ////////////////////////////
const errorM = (error) => {
const filePath = (error.file === 'stdin' ? file.path : error.file) || file.path;
const relativePath = path.relative(process.cwd(), filePath);
@ -123,9 +126,9 @@ const gulpSass = (options, sync) => through.obj((file, enc, cb) => { // eslint-d
};
if (sync !== true) {
//////////////////////////////
// ////////////////////////////
// Async Sass render
//////////////////////////////
// ////////////////////////////
const callback = (error, obj) => { // eslint-disable-line consistent-return
if (error) {
return errorM(error);
@ -135,9 +138,9 @@ const gulpSass = (options, sync) => through.obj((file, enc, cb) => { // eslint-d
gulpSass.compiler.render(opts, callback);
} else {
//////////////////////////////
// ////////////////////////////
// Sync Sass render
//////////////////////////////
// ////////////////////////////
try {
filePush(gulpSass.compiler.renderSync(opts));
} catch (error) {
@ -146,23 +149,35 @@ const gulpSass = (options, sync) => through.obj((file, enc, cb) => { // eslint-d
}
});
//////////////////////////////
// ////////////////////////////
// Sync Sass render
//////////////////////////////
// ////////////////////////////
gulpSass.sync = options => gulpSass(options, true);
//////////////////////////////
// ////////////////////////////
// Log errors nicely
//////////////////////////////
// ////////////////////////////
gulpSass.logError = function logError(error) {
const message = new PluginError('sass', error.messageFormatted).toString();
process.stderr.write(`${message}\n`);
this.emit('end');
};
//////////////////////////////
// ////////////////////////////
// Store compiler in a prop
//////////////////////////////
gulpSass.compiler = require('node-sass');
// ////////////////////////////
gulpSass.compiler = (() => {
try {
// eslint-disable-next-line global-require import/no-extraneous-dependencies
return require('sass');
} catch (e1) {
try {
// eslint-disable-next-line global-require import/no-extraneous-dependencies
return require('node-sass');
} catch (e2) {
throw new Error(`${PLUGIN_NAME}: you need either sass or node-sass module in your project`);
}
}
})();
module.exports = gulpSass;

View File

@ -3,6 +3,7 @@ const Vinyl = require('vinyl');
const path = require('path');
const fs = require('fs');
const sass = require('../index');
sass.compiler = require('node-sass');
const rimraf = require('rimraf');
const gulp = require('gulp');
const sourcemaps = require('gulp-sourcemaps');