我有 Eslint 和 JSCS 设置,使用 WebStorm 中的 airbnb js样式指南重新格式化一些代码库。过去两天我一直在有效地使用这个设置,但突然之间,WebStorm开始抛出这个错误......
ESLint重新格式化问题:index.js:初始化错误(ESLint)。意外的标识符
我想也许我的 .eslintrc 中有一些错误,但后来我使用相同的配置在这突然错误之前成功重构了大约150个文件。 在此之前, JSCS 编译器偶尔会抛出“不到一分钟的超时”异常,但之后我会通过关闭并重新打开文件来解决这个问题。 eslint 虽然似乎没有因此而堕落。
这是我的.eslintrc
配置
{
"extends": "airbnb",
"env": {
"browser": true,
"node": true
},
"globals": {
"document": false
},
"rules": {
"validateIndentation": 4,
"func-names": [
"error",
"never"
],
"react/jsx-filename-extension": [
1,
{
"extensions": [
".js",
".jsx"
]
}
],
"jsx-a11y/label-has-for": [
2,
{
"components": [
"Label"
],
"required": {
"some": [
"nesting",
"id"
]
},
"allowChildren": false
}
],
"jsx-a11y/anchor-is-valid": [
"error",
{
"components": [
"Link"
],
"specialLink": [
"to",
"hrefLeft",
"hrefRight"
],
"aspects": [
"noHref",
"invalidHref",
"preferButton"
]
}
]
}
}
package.json
的某些部分
{
"eslint": "^4.14.0",
"eslint-config-airbnb": "^16.1.0",
"eslint-loader": "^1.9.0",
"eslint-plugin-flowtype": "^2.40.1",
"eslint-plugin-import": "^2.8.0",
"eslint-plugin-jsx-a11y": "^6.0.3",
"eslint-plugin-react": "^7.5.1",
"extract-text-webpack-plugin": "^3.0.2",
"prop-types": "^15.6.0",
"react": "^16.2.0",
"react-dev-utils": "^4.2.1",
"react-dom": "^16.2.0",
"react-redux": "^5.0.6",
"react-router-dom": "^4.2.2",
},
"babel": {
"presets": [
"react-app",
"flow"
]
},
"eslintConfig": {
"extends": "react-app"
}
}
有人可以告诉我如何解决这个问题。我怀疑它可能比Eslint更像是一个WebStorm错误。
PS:如果这个问题可能更适合超级用户,请原谅我。我只是觉得这里的人很可能遇到同样的问题。
答案 0 :(得分:1)
由yarn upgrade
我尝试使用新项目重新创建问题失败了,使用相同的配置,eslint
和jscs
都成功运行。
但是,在非Apply ESlint Code Style Rules
文件(在.eslintrc本身上测试)上使用WebStorm上下文菜单命令 js
时,我得到了更详细的错误。
尝试查找'.eslintrc'的父和基本ESLint配置文件时出错:
[projectpath]
\ node_modules \ lodash \ lodash.js:386'\ u0149':''n','\ u017f': 'S',
我仔细检查了lodash包node_modules和package.json,检查了设置配置(Eslint& JSCS)并确定我对没有错误的linting的测试项目进行了相同的设置。
跑 yarn upgrade lodash
保存了我的头发。由于我已经在运行最新的lodash,我认为纱线的解决和重建包装就行了。
希望有人可能会发现这有用的地方。
答案 1 :(得分:1)
我在 phpstorm 中为我的 eslint 配置使用了这种模式,现在错误消失了,
{**/*,*}.{js,ts,jsx,tsx,html,vue},{!node_modules/*}