javascript – ESLint:快速解决“不允许的不规则空格”的方法

我正在尝试使用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以获取更多详细信息和更多选项.

点赞