Prettier格式化函数名后(之间出现空格

现象:同样的 package.json 及版本, 代码格式化却有两种不同代码质量检查与格式化,导致运行编译不通过

1# 1.匿名函数function 后面有个空格
2[1,2].sort(function (x, y) {
3   return x - y;
4});
5
6# 2.匿名函数function 后面没有空格
7[1,2].sort(function(x, y) {
8   return x - y;
9});

原因:eslint-plugin-prettier 依赖的 prettier 版本>=1.13.0,没有限定清楚,prettie1 版本和 2 版本有格式化上的区别,以前老项目安装的是 1.19.1,现在新项目是 2.5.1(在没有 lock 文件锁定版本依赖时)

 1"node_modules/eslint-plugin-prettier": {
 2 "version": "3.4.1",
 3 "resolved": "https://registry.npmmirror.com/eslint-plugin-prettier/download/eslint-plugin-prettier-3.4.1.tgz",
 4 "integrity": "sha1-6d2yAO+289Bf/oOxZlpxavSjh+U=",
 5 "dev": true,
 6 "dependencies": {
 7   "prettier-linter-helpers": "^1.0.0"
 8 },
 9 "engines": {
10   "node": ">=6.0.0"
11 },
12 "peerDependencies": {
13   "eslint": ">=5.0.0",
14   "prettier": ">=1.13.0"
15 },
16 "peerDependenciesMeta": {
17   "eslint-config-prettier": {
18     "optional": true
19   }
20 }
21}

解决方法:

  • 1.已有工程 package.lock.json 缺失的,需要补齐,自始至终都不要删除,每次需要提交,禁止使用 cnpm 命令,然后执行 npm install prettier@1.19.1 -D,固定为现象 2 的格式化
  • 2.升级 eslint-plugin-prettier 至 4.2.1 使其依赖 prettier 为 2 版本,对应的其它组件也需要升级(不推荐),后面会配置好后在项目生成工具支持,在新创建工程采用

配一台电脑
浏览器缓存过程

评论