made dart sass default
parent
bcf64926b8
commit
148502cd95
49
index.js
49
index.js
|
@ -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;
|
||||
|
|
|
@ -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');
|
||||
|
|
Loading…
Reference in New Issue