使用JS-Beautify与Gulp一起保存JS



我正在使用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与管道一起使用。

无论您想对Gulp做什么,都有一个软件包已经做得很好。

使用JS-Beautify使用 gulp-jsbeautify 软件包。

是这种情况。

要使用Gulp修改文件,请在调用gulp.src时设置base选项,然后将./用作目的地。

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将启动观察者。

"美化选项"是与次数相同的选项 JS-Beautify。请参阅js-beautify文档以获取其中的列表。

除非没有特定的

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

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

.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福利

要获得更大的墨西哥灵活性,请参阅如何编写简单的墨西哥管道功能?

最新更新