运行npm包作为gulp任务

时间:2016-02-05 06:57:13

标签: gulp

我想使用gulp任务运行此sort-sass包。它只提供了通过cli或节点运行它的说明,我想知道是否有人可以给我一些如何解决此问题的提示。

1 个答案:

答案 0 :(得分:0)

我认为compareTo()不接受文件流作为输入,但它需要字符串或缓冲区。

此处的示例与sort-sass页面中的示例相同:

npm module

这里的异步版本中的任务相同(相同的模式适用于所有其他var fs = require('fs'); var sortSass = require('sort-sass'); gulp.task('sort-sass', [ /* list task deps here*/ ], function(){ var sassString = fs.readFileSync('some.sass'); var sortedSassString = sortSass(sassString); // do something here (perhaps write it) fs.writeFileSync('output.sass'); }); ):

npm async modules

另一个解决方案可能是用a gulp plugin that deals with buffers包装这样的模块,这样你就可以这样写:

var fs = require('fs');
var sortSass = require('sort-sass');

gulp.task('sort-sass', [ /* list task deps here*/ ], function(done){
  // read the file
  fs.readFile('some.sass', function(err, sassString){
    if(err){
      return done(err);
    }
    var sortedSassString = sortSass(sassString);

    // do somthing else with the string...
    // if you want to write it somewhere
    fs.writeFile( 'filename.sass', sortedSassString, function(done);

  });
});