使用Gulp使用js-beautify来保存JS

时间:2017-04-17 09:52:55

标签: javascript gulp gulp-watch js-beautify

我正在使用Gulp js-beautify来拯救JavaScript。

我无法使用gulp.srcgulp.dest管道。它给出了错误

dest.on('unpipe', onunpipe);

所以我使用了以下代码并实现了我想要的结果。

gulp.task("jsbeautify", function () {
    const fs = require('fs');
    gulp.watch(config.srcTest).on("change", function (file) {
        console.log("Updating file");
        const destPath = file.path.replace(/\/[^/]*.js/g, " ");
        const fileContent = fs.readFileSync(file.path, "utf8");
        fs.writeFileSync(file.path, jsBeautify(fileContent, {indent_size: 2}));
    });
});

js-beautify中的文档没有提供修改或写入文件的示例。所以我使用了fs

有更好的方法吗?也许在管道中使用gulp.src

1 个答案:

答案 0 :(得分:2)

无论你想用gulp做什么,都可能已经做得很好。

使用js-beautify gulp-jsbeautify包来美化{<3}}。

modify files in place using gulp,请在致电base时设置gulp.src选项,并使用./作为目的地。

var gulp = require('gulp');
var prettify = require('gulp-jsbeautifier');

gulp.task('prettify', function() {
  return gulp.src(config.srcTest, {base: "./"})
    .pipe(prettify())
    .pipe(gulp.dest('./'));
});

gulp.task('watch', function() {
  gulp.watch(config.srcTest, ['prettify']);
});

然后调用gulp watch将启动观察者。

  

&#34;美化选项&#34;是使用相同的下划线选项   JS-美化。请参阅js-beautify文档以获取其列表。

     

所有&#34;美化选项&#34;放在根目录中,应用于CSS,HTML和JavaScript,除非没有特定的。

     

通过gulp中的参数给出的选项与这些选项合并   通过文件给出。合并顺序是:默认值,   配置文件,参数。后续选项会覆盖   以前的。

这意味着您可以直接在gulp任务中将任何默认的js-beautify选项传递给插件。

.pipe(prettify({
  indent_level: 4, // applied to CSS, HTML, JS
  js: {
    indent_level: 2 // applied to JS only
  }
))

但我强烈建议您将选项放在项目根目录下的JSON格式.jsbeautifyrc文件中。

  • 您使用js-beautify
  • 更清楚
  • IDE插件可以直接读取并集成js-beautify好处

要获得更多的gulp灵活性,请参阅How can I write a simple gulp pipe function?