Javascript Jest-语法错误:意外标识符
使用Jest对一些NodeJS函数进行一些测试,但它不喜欢Javascript Jest-语法错误:意外标识符,javascript,node.js,jestjs,babel-jest,Javascript,Node.js,Jestjs,Babel Jest,使用Jest对一些NodeJS函数进行一些测试,但它不喜欢import语句,例如import DatabaseController from'../util/database controller' 我读了一些书,有人建议安装babeljest并更新我的配置(见下文),但我运气不好。我错过了什么?据我所知,它不理解import语句,因为它是es6的东西 我的包.json中的Jest部分: "jest": { "collectCoverageFrom": [ "src/**/*
import
语句,例如import DatabaseController from'../util/database controller'
我读了一些书,有人建议安装babeljest
并更新我的配置(见下文),但我运气不好。我错过了什么?据我所知,它不理解import
语句,因为它是es6
的东西
我的包.json中的Jest部分:
"jest": {
"collectCoverageFrom": [
"src/**/*.{js,jsx}"
],
"resolver": "jest-pnp-resolver",
"setupFiles": [
"react-app-polyfill/jsdom"
],
"testMatch": [
"<rootDir>/**/__tests__/**/*.{js,jsx}",
"<rootDir>/**/?(*.)(spec|test).{js,jsx}"
],
"testEnvironment": "jsdom",
"testURL": "http://localhost",
"transform": {
"^.+\\.jsx?$": "babel-jest",
"^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
"^(?!.*\\.(js|jsx|css|json)$)": "<rootDir>/config/jest/fileTransform.js"
},
"transformIgnorePatterns": [
"[/\\\\]node_modules[/\\\\].+\\.(js|jsx)$",
"^.+\\.module\\.(css|sass|scss)$"
],
"moduleNameMapper": {
"^react-native$": "react-native-web",
"^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy"
},
"moduleFileExtensions": [
"web.js",
"js",
"json",
"web.jsx",
"jsx",
"node"
]
},
"devDependencies": {
"babel-eslint": "^10.0.3",
"babel-preset-env": "^1.7.0",
"jest": "^24.9.0",
"parcel-bundler": "^1.12.3"
}
“开玩笑”:{
“CollectionCoverage from”:[
src/***.{js,jsx}
],
“解析器”:“jest pnp解析器”,
“设置文件”:[
“react应用程序polyfill/jsdom”
],
“测试匹配”:[
“/**/\\\\\\\/**.{js,jsx}”,
“/***/?(*)(规范测试)。{js,jsx}”
],
“测试环境”:“jsdom”,
“testURL”:”http://localhost",
“转变”:{
“^.+\\.jsx?$”:“巴别塔玩笑”,
“^.+\.css$”:“/config/jest/cstransform.js”,
“^(?。*\(js | jsx | css | json)$)”:“/config/jest/fileTransform.js”
},
“transformIgnorePatterns”:[
“[/\\\\]节点单元模块[/\\\].+\\.(js | jsx)$”,
“^.+\.模块\(css | sass | scss)$”
],
“moduleNameMapper”:{
“^react native$”:“react native web”,
“^.+\.模块\(css | sass | scss)$”:“标识obj代理”
},
“moduleFileExtensions”:[
“web.js”,
“js”,
“json”,
“web.jsx”,
“jsx”,
“节点”
]
},
最近,我发现我根本不需要巴别塔笑话
,只需使用以下.babelrc
:
{
"env": {
"test": {
"presets": [["@babel/preset-env"]]
}
}
}
这对我的简单设置有效:
devdependency(在package.json
中):
我只是创建了一个babel.config.js
,如下所示:
// babel.config.js
module.exports = {
presets: [
[
'@babel/preset-env',
{
targets: {
node: 'current',
},
},
],
],
};
注意-确保在运行之前清除缓存
清除缓存:
./node_modules/.bin/jest --clearCache
你能包括你正在使用的巴别塔笑话的哪个版本吗?从23岁到24岁的更新打破了我的很多正则表达式的转换。在那次更新中,他们切换到了micromatch 3,我实际上自己解决了这个问题,但你的答案是我遇到的问题之一,所以我将它标记为正确:)