最近我在使用Jest(23.5.0)和WebStorm(2018.2.3)intellisense时遇到了一个问题。对于所有的Jest方法(例如toHaveBeenCalledWith
,toHaveLength
),我都收到了一个Unresolved function or method "xxx"
错误。
我在所有的项目中都有@types/jest
,除了最近的一个,它在我退出CRA后就停止工作了。Jest上的Intellisense工作得很好-但是只要我运行yarn install
,Intellisense就停止工作,我就会得到Unresolved function or method "xxx"
错误。所以我怀疑我的一个包导致@types/jest
停止工作。
问题快照:
我尝试过:
- 在JetBrains论坛中讨论的关于此问题的所有方法
- 这个alternate workaround
- 正在使Webstorm的缓存失效并重新启动
- 删除锁定文件后重新安装软件包
我的项目设置:
- 我的WebStorm版本是2018.2.3
- 我的
package.json
看起来如下:
"dependencies": {
"axios": "0.18.0",
"classnames": "2.2.6",
"dashjs": "2.9.0",
"get-countries-info": "1.2.1",
"lodash": "4.17.10",
"moment": "2.22.2",
"nuka-carousel": "4.3.5",
"prop-types": "15.6.2",
"querystringify": "2.0.0",
"react": "16.4.2",
"react-custom-scrollbars": "4.2.1",
"react-dom": "16.4.2",
"react-icons-kit": "1.1.7",
"react-image-fallback": "8.0.0",
"react-lottie": "1.2.3",
"react-player-controls": "0.5.21",
"react-redux": "5.0.7",
"react-router-dom": "4.3.1",
"react-select": "2.0.0",
"react-toastify": "3.3.4",
"redux": "4.0.0",
"redux-promise": "0.6.0",
"redux-thunk": "2.3.0",
"uuid-validate": "0.0.3"
},
"devDependencies": {
"autoprefixer": "9.1.5",
"babel-core": "6.26.3",
"babel-eslint": "9.0.0",
"babel-jest": "23.4.2",
"babel-loader": "7.1.2",
"babel-preset-react-app": "3.1.2",
"babel-runtime": "6.26.0",
"case-sensitive-paths-webpack-plugin": "2.1.2",
"chalk": "2.4.1",
"css-loader": "1.0.0",
"dotenv": "6.0.0",
"dotenv-expand": "4.2.0",
"enzyme": "3.6.0",
"enzyme-adapter-react-16": "1.4.0",
"enzyme-matchers": "6.0.4",
"eslint": "5.5.0",
"eslint-config-prettier": "3.0.1",
"eslint-config-react-app": "2.1.0",
"eslint-loader": "2.1.0",
"eslint-plugin-flowtype": "2.50.0",
"eslint-plugin-import": "2.14.0",
"eslint-plugin-jest": "21.22.0",
"eslint-plugin-jsx-a11y": "6.1.1",
"eslint-plugin-prettier": "2.6.2",
"eslint-plugin-react": "7.11.1",
"extract-text-webpack-plugin": "3.0.2",
"file-loader": "2.0.0",
"fs-extra": "7.0.0",
"generate-react-code": "1.3.0",
"husky": "0.14.3",
"html-webpack-plugin": "3.2.0",
"jest": "23.5.0",
"jest-enzyme": "6.0.4",
"jest-mock-console": "0.4.0",
"lint-staged": "7.2.2",
"moxios": "0.4.0",
"node-sass-chokidar": "1.3.3",
"npm-run-all": "4.1.3",
"object-assign": "4.1.1",
"postcss-flexbugs-fixes": "4.1.0",
"postcss-loader": "3.0.0",
"promise": "8.0.1",
"prettier": "1.14.2",
"raf": "3.4.0",
"react-dev-utils": "5.0.2",
"redux-devtools-extension": "2.13.5",
"redux-logger": "3.0.6",
"resolve": "1.8.1",
"style-loader": "0.23.0",
"sw-precache-webpack-plugin": "0.11.5",
"url-loader": "1.1.1",
"webpack": "3.12.0",
"webpack-dev-server": "2.11.3",
"webpack-manifest-plugin": "2.0.3",
"whatwg-fetch": "2.0.4"
},
"lint-staged": {
"*.js": [
"prettier --write",
"eslint --fix",
"git add"
],
"*.scss": [
"prettier --write",
"git add"
]
},
"babel": {
"presets": [
"react-app"
]
}
- 我的
eslintrc.json
文件如下所示:
{
"env": {
"browser": true,
"es6": true,
"jest/globals": true,
"jest": true,
"node": true
},
"globals": {
"process": true,
"localStorage": true,
"customScrollHandler": true,
"customOnScrollEvent": true
},
"extends": [
"react-app",
"prettier",
"eslint:recommended",
"plugin:react/recommended",
"plugin:jest/recommended",
"plugin:jsx-a11y/recommended"
],
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
}
},
"plugins": ["react", "jest", "prettier", "jsx-a11y"],
"settings": {
"react": {
"version": "16.4.2"
}
},
"rules": {
"class-methods-use-this": "off",
"semi": ["error", "always"],
"no-console": ["error", { "allow": ["warn", "error"] }],
"react/jsx-handler-names": "off",
"import/no-namespace": "off",
"import/namespace": "off",
"import/prefer-default-export": "off",
"import/default": "off",
"react/prefer-stateless-function": "off",
"react/jsx-curly-brace-presence": ["error", { "props": "never", "children": "ignore" }],
"jsx-a11y/click-events-have-key-events": "off",
"jsx-a11y/media-has-caption": "off",
"jsx-a11y/no-static-element-interactions": "off",
"jsx-a11y/label-has-for": "off",
"jsx-a11y/no-noninteractive-element-interactions": "off",
"jsx-a11y/href-no-hash": "off",
"jsx-a11y/anchor-is-valid": "off"
}
}
任何帮助都将不胜感激!
2条答案
按热度按时间fcwjkofz1#
expect
在node_modules/react-custom-scrollbars/test.js
中被解析为window.expect
,从而导致此问题。您可以通过将此文件标记为纯文本(在文件右键单击菜单中标记为纯文本)来从索引中排除此文件-这应该可以解决此问题wwtsj6pe2#
在Webstorm中:偏好设定|语言和框架|JavaScript语言|库,请按“下载...”,从可用存根列表中选择“jest”,然后按“下载并安装
Source