我好几天都有同样的问题。
团队中的每个人都有相同的eslintrc&安装版本的eslint。他们的约束很好,我的没有。
我尝试重新启动计算机,删除node_modules,删除我用户下的任何内容(在主目录中)。什么都行不通。
问题:
./node_modules/.bin/eslint *.js*
1 ↵ 11504 10:19:47
Cannot read property 'range' of null
TypeError: Cannot read property 'range' of null
at SourceCode.getTokenBefore (/Users/jhill/gitRepo/sponsoroo/node_modules/eslint/lib/token-store/index.js:303:18)
at checkSpacingBefore (/Users/jhill/gitRepo/sponsoroo/node_modules/eslint/lib/rules/template-curly-spacing.js:52:42)
at TemplateElement (/Users/jhill/gitRepo/sponsoroo/node_modules/eslint/lib/rules/template-curly-spacing.js:117:17)
at listeners.(anonymous function).forEach.listener (/Users/jhill/gitRepo/sponsoroo/node_modules/eslint/lib/util/safe-emitter.js:47:58)
at Array.forEach (<anonymous>)
at Object.emit (/Users/jhill/gitRepo/sponsoroo/node_modules/eslint/lib/util/safe-emitter.js:47:38)
at NodeEventGenerator.applySelector (/Users/jhill/gitRepo/sponsoroo/node_modules/eslint/lib/util/node-event-generator.js:251:26)
at NodeEventGenerator.applySelectors (/Users/jhill/gitRepo/sponsoroo/node_modules/eslint/lib/util/node-event-generator.js:280:22)
at NodeEventGenerator.enterNode (/Users/jhill/gitRepo/sponsoroo/node_modules/eslint/lib/util/node-event-generator.js:294:14)
at CodePathAnalyzer.enterNode (/Users/jhill/gitRepo/sponsoroo/node_modules/eslint/lib/code-path-analysis/code-path-analyzer.js:608:23)
详细
版本:
./node_modules/.bin/eslint --version
v4.16.0
.eslintrc
{
"extends": ["airbnb-base", "plugin:security/recommended"],
"rules": {
"import/prefer-default-export": "off",
"no-console": "off",
"class-methods-use-this": "off",
"global-require": "off",
"consistent-return": "off",
"import/no-extraneous-dependencies": ["error", {"devDependencies": true}],
/* JSX */
"jsx-quotes": [2, "prefer-double"],
/* React */
"react/display-name": 1,
"react/jsx-boolean-value": 1,
"react/jsx-no-duplicate-props": 1,
"react/jsx-no-undef": 1,
"react/jsx-quotes": 0,
"react/jsx-sort-props": 0,
"react/jsx-uses-react": 1,
"react/jsx-uses-vars": 1,
"react/no-danger": 1,
"react/no-did-mount-set-state": 1,
"react/no-did-update-set-state": 1,
"react/no-multi-comp": 1,
"react/no-unknown-property": 1,
"react/prop-types": 1,
"react/react-in-jsx-scope": 1,
"react/self-closing-comp": 1,
"react/sort-comp": 1,
"react/wrap-multilines": 0,
/* Security */
"security/detect-non-literal-fs-filename": 2,
"security/detect-non-literal-regexp": 2,
"security/detect-unsafe-regex": 2,
"security/detect-buffer-noassert": 2,
"security/detect-child-process": 2,
"security/detect-disable-mustache-escape": 2,
"security/detect-eval-with-expression": 2,
"security/detect-no-csrf-before-method-override": 2,
"security/detect-non-literal-require": 2,
"security/detect-object-injection": 2,
"security/detect-possible-timing-attacks": 1,
"security/detect-pseudoRandomBytes": 2,
"no-unsafe-innerhtml/no-unsafe-innerhtml": 2
},
"parser": "babel-eslint",
"plugins": [
"babel",
"react",
"security",
"no-unsafe-innerhtml"
],
"env": {
"jest": true,
"browser": true,
"es6": true,
"node": true
},
"settings": {
"import/extensions": {
"webpack": {
"config": "./webpack.config.react.js"
}
}
}
}
另外,如果我从.eslinrc中删除“parser”:“babel-eslint”,则问题/ erorr会消失,但我的eslint不起作用。我使用的是ES6语法。
更新:
我的解决方案是使用纱线代替npm。暂时解决了这个问题。
答案 0 :(得分:6)
正如@Vasan在issue 530, this was the comment上提到的那样,它帮助我解决了该问题:
最有可能是该问题导致了错误的解析。
import(`some_path/${variable}`) // issue exists
修复
import("some_path" + variable) // issue fixed
答案 1 :(得分:6)
babel-eslint 已被弃用,而推荐使用 @ babel / eslint-parser 。 阅读here
以下是从babel-eslint升级到@ babel / eslint-parser的步骤:
npm
npm uninstall babel-eslint babel-eslint-plugin
npm install --save-dev @babel/eslint-parser @babel/eslint-plugin
纱线
yarn remove babel-eslint babel-eslint-plugin
yarn add --dev @babel/eslint-parser @babel/eslint-plugin
module.exports = { --- parser: "babel-eslint", +++ parser: "@babel/eslint-parser" plugins: [ --- "babel" +++ "@babel ] };
答案 2 :(得分:2)
通过运行以下命令将from pyspark.sql.functions import min as min_, max as max_
df_agg = df.groupBy("key", "status", "status_group")\
.agg(
min_("time").alias("start"),
max_("time").alias("end"),
max_("value").alias("max_value")
)\
.select("key", "start", "end", "status", "max_value")\
.sort("key", "start")
df_agg.show()
#+---+-----+---+-------+---------+
#|key|start|end| status|max_value|
#+---+-----+---+-------+---------+
#| x| 0| 3|running| 30|
#| x| 4| 4| stop| 0|
#| x| 5| 6|running| 40|
#| y| 0| 3|running| 30|
#| y| 4| 4| stop| 0|
#| y| 5| 6|running| 40|
#+---+-----+---+-------+---------+
的版本固定为7.2.3或8.0.1:
Library.fs(86, 40): [FS0193] Type constraint mismatch. The type 'struct (DateTime * Intervals * float * float) option list' is not compatible with type 'Collections.Generic.List<struct (DateTime * Intervals * float * float)>'
或者:
babel-eslint
答案 3 :(得分:1)
我在 .eslintrc.js 文件中只添加了两条规则,它为我解决了。
rules : {
"template-curly-spacing" : "off",
indent : "off"
}
答案 4 :(得分:0)
这些.eslintrc规则为我解决了这个问题:
rules : {
"template-curly-spacing" : "off",
"indent": ["error", 2, {
"ignoredNodes": ["TemplateLiteral"]
}]
}
答案 5 :(得分:0)
对我来说,每个字符串文字(例如for (int i=0 to 3){
NextHoleX(true);
}
)都显示警告,安装这两个软件包解决了我的问题:
some text ${someVariable}