我正在尝试使用ESLint在项目上强制执行编码样式,并且我有很多错误不允许由此类代码引起的不规则空格:
var a = b || 10; //note the 2 spaces between || and 10
if (a === 10) { // again, 2 spaces between ) and {
我没有找到任何方法来轻松解决我的所有文件的这个问题.
我认为基本正则表达式不起作用,因为在某些情况下双空格可能是有效的(JSON对象的列缩进,软标签缩进,字符串).
我尝试过像js-beautify这样的工具,但没有找到任何解决这个问题的方法.有没有可以帮助我的工具?
最佳答案 如果您正在寻找在命令行上执行此操作的方法,则可以将awk或ts的输出通过管道传输到tee(如果它们在您的操作系统上可用).以下选项将规范化文件中的空白,并覆盖现有文件:
(警告!这将覆盖file.js的内容)
选项#1:tr -s“”< file.js | tee file.js
选项#2:awk'{$2 = $2}; 1’file.js | tee file.js
假设您有一个file.js文件,其中包含以下内容:
// there are lots of spaces
// in this file
var a = b || 10;
if ( a === 10 ) {
// ....
}
运行上面的一个命令后,file.js文件将如下所示:
// there are lots of spaces
// in this file
var a = b || 10;
if ( a === 10 ) {
// ....
}
如果您只想将更正后的空白内容的结果打印到终端而不覆盖文件,只需不要将输出传递给tee,如下所示:
选项#1:tr -s“”< file.js
选项#2:awk'{$2 = $2}; 1’file.js
否则,如果要将内容输出到新文件:
选项#1:tr -s“”< file.js | tee newfile.js
选项#2:awk'{$2 = $2}; 1’file.js | tee newfile.js
输出到同一文件
选项#1:tr -s“”< file.js | tee file.js
选项#2:awk'{$2 = $2}; 1’file.js | tee file.js
话虽这么说,在信任源代码文件的命令行操作之前,您应该始终保持谨慎并进行详细测试.
查看this post以获取更多详细信息和更多选项.