2016-08-09 10 views
0

Я создаю taskrunner с NPM - я не хочу использовать Gulp или Grunt ... slow !. Бегун заданий работает, и это быстро! Но ... autoprefixer не является префиксом. Консоли. Он также не отображается в терминале. Похоже, он не уволен. Я вызываю его в функции под названием autoPrefix() после того, как SCSS скомпилирован в CSS.Autoprefixer не работает в NPM

У меня есть package.json с объектом задачи сценария, который направляет к start.js Этот файл имеет следующий код:

var watch = require('node-watch'); 
var sass = require('node-sass'); 
var fs = require('fs'); 
var browserSync = require('browser-sync'); 
var autoprefixer = require('autoprefixer'); 
var postcss = require('postcss'); 
var inputFile = 'static/scss/compiler.scss'; 
var outputFile = 'static/css/site.min.css'; 

/** 
* BrowserSync 
*/ 

browserSync({ 
    server: "./", 
    files: ["./*.html", "static/css/*", "static/js/*"], 
    logLevel: "silent", 
    notify: false 
}); 


/* AUTOPREFIXER NOT WORKING! */ 

var autoPrefix = function() { 
    postcss([ autoprefixer ]).process({ 
     from: outputFile, 
     to: outputFile 
    }).then(function (result) { 
     result.warnings().forEach(function (warn) { 
      console.warn(warn.toString()); 
     }); 
     console.log(result.css); 
    }); 
} 


/** 
* Sass Compiler 
*/ 

var compileSass = function(file) { 

    sass.render({ 
     file: inputFile, 
     outputStyle: 'compressed' 
    }, function(error, result) { 
     if (!error) { 
      /* Write new file */ 
      fs.writeFile(outputFile, result.css, function(err) { 
       if (!err) { 
        if (file) { 
         autoPrefix(); 
         console.log('', '\x1b[34m', 'Done compiling SCSS, after a change in:', '\x1b[0m' + file); 
         console.timeEnd('Speed'); 
         console.log('\n'); 
        } else { 
         autoPrefix(); 
         console.log(' Here we go! Compiling: ' + inputFile + '\n \n' + 'OK done! I\'m watching! ' + '\n'); 
        } 
       } else { 
        console.log('Hmm something went wrong.. ' + err); 
       } 
      }); 
     } else { 
      console.log('', '\x1b[31m', 'Error in file: ', '\x1b[0m' + error.file + ' on line: ' + error.line + '\n' + error.message + '\n'); 
     } 
    }); 
} 
compileSass(); 


/** 
* Watch 
*/ 
watch('static/scss/', function(filename) { 
    var file = filename; 
    compileSass(file); 
    console.time('Speed'); 
}); 

Что я делаю неправильно? Я кодирую его, как пример: https://github.com/postcss/autoprefixer#javascript

ответ

0

Исправлено. Мне пришлось выталкивать результаты компиляции SASS в PostCSS, а затем префикс.

код здесь:

var watch = require('node-watch'); 
var sass = require('node-sass'); 
var fs = require('fs'); 
var browserSync = require('browser-sync'); 
var autoprefixer = require('autoprefixer'); 
var postcss = require('postcss'); 
var inputFile = 'static/scss/compiler.scss'; 
var outputFile = 'static/css/site.min.css'; 
/** 
* BrowserSync, set folders to watch 
* Do not set SCSS folder 
*/ 
browserSync({ 
    server: "./", 
    files: ["./*.html", "static/css/*", "static/js/*"], 
    logLevel: "silent", 
    notify: false 
}); 

/** 
* Sass Compiler 
*/ 
var compileSass = function(file) { 

    sass.render({ 
     file: inputFile, 
     outputStyle: 'compressed' 
    }, function(error, result) { 

     postcss([ autoprefixer ]).process(result.css).then(function (result) { 
      result.warnings().forEach(function (warn) { 
       console.warn(warn.toString()); 
      }); 

      if (!error) { 
       /* Write new file */ 
       fs.writeFile(outputFile, result.css, function(err) { 
        if (!err) { 
         if (file) { 
          console.log('', '\x1b[34m', 'Done compiling SCSS, after a change in:', '\x1b[0m' + file); 
          console.timeEnd('Speed'); 
          console.log('\n'); 
         } else { 
          console.log(' Here we go! Compiling: ' + inputFile + '\n \n' + 'OK done! I\'m watching! ' + '\n'); 
         } 
        } else { 
         console.log('Hmm something went wrong.. ' + err); 
        } 
       }); 
      } else { 
       console.log('', '\x1b[31m', 'Error in file: ', '\x1b[0m' + error.file + ' on line: ' + error.line + '\n' + error.message + '\n'); 
      } 
     }); 
    }); 
} 
compileSass(); 

/** 
* Watch 
* On each watch, compile SCSS and start timer 
*/ 
watch('static/scss/', function(filename) { 
    var file = filename; 
    compileSass(file); 
    console.time('Speed'); 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^