综述
从两个角度考虑:
1: node版本够不够v14
2: 格式化插件用错了,用了一个过时没有及时更新的格式化插件
想看我解决办法的直接拉最后
经历过程
先上图:
我最开始发现,我先敲这个代码:
最开始是两个问号还是白色的,我加个一个插件: Nullish Coalescing Operator Grammar
然后字符就能够正常识别了,否则两个问号都是白色的,
然后我格式化之后, 就出问题了!!
自动给我加空格了,这可还行!
我运行之后
onsole.log(null ? ? "default");
^
SyntaxError: Unexpected token '?'
at wrapSafe (internal/modules/cjs/loader.js:979:16)
at Module._compile (internal/modules/cjs/loader.js:1027:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
at internal/main/run_main_module.js:17:47
最开始我还以为是我本地node的版本太低了,v12.2.X的,我特意升级了一下升级到了v14.16.0的版本,还是不行,
重点来了!!!
就是那个格式化的插件有问题,我每次格式化都会把两个问号中间加个空格,因为我用了两个格式化插件,一个是Prettier
一个是Beautify
发现,就是Beautify这个格式化插件搞的鬼,自动给我加空格!!干掉他就好了,操作符也能识别了,运行也没问题了,
console.log(null ?? "default");
这么简单的问题我愣是半天才想清楚解决方向,明明就是代码格式化出的问题嘛,唉,自己记录下,也希望能帮到遇到同样问题的人!
希望能节省点大家都时间, 如果觉得分享的好,还得麻烦您赏个赞哈!多谢啦!