我正在使用JS-Beautify和Gulp使用JS-Beautify在保存上的JavaScript。
我无法使用gulp.src
和gulp.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福利
要获得更大的墨西哥灵活性,请参阅如何编写简单的墨西哥管道功能?