Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jest-语法错误:意外标识符_Javascript_Node.js_Jestjs_Babel Jest - Fatal编程技术网

Javascript Jest-语法错误:意外标识符

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/**/*

使用Jest对一些NodeJS函数进行一些测试,但它不喜欢
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,我实际上自己解决了这个问题,但你的答案是我遇到的问题之一,所以我将它标记为正确:)