Babel,Jest和Webpack-运行单元测试时出错语法错误:无法在模块外部使用import语句

问题描述 投票:0回答:1

我对Babel 7,Webpack 4和Jest的配置有疑问。在运行测试时,出现以下错误:

SyntaxError:无法在模块外部使用import语句

package.json

 "@babel/core": "^7.7.5",
    "@babel/highlight": "^7.8.3",
    "@babel/plugin-syntax-dynamic-import": "^7.8.3",
    "@babel/preset-env": "^7.8.4",
    "babel-core": "^7.0.0-bridge.0",
    "babel-loader": "^7.1.5",
    "@babel/plugin-transform-runtime": "^7.7.4",
    "@babel/preset-react": "^7.7.4",
    "@babel/runtime": "^7.8.4",
    "babel-jest": "^24.9.0",
    "jest-watch-typeahead": "^0.4.2",
    "vue-jest": "^3.0.5",
    "jest": "^24.9.0",
    "jest-serializer-vue": "^2.0.2",
    "jest-transform-stub": "^2.0.0",

webpack.config.js

  entry: {
      app: ["./src/index.js"]
  },
  output: {
    path: path.resolve('../', 'static/js/'), 
    filename: "[name].js",
    publicPath: '/static/js/', 
    chunkFilename: '[name].chunk.js' 
  }, 

。babelrc-我认为问题出在模块上:false,但如果我不包括该问题,则webpack不会对我的文件进行分块。


{
  "presets": [
    ["@babel/preset-env", {"modules": false}, "jest" ]
  ],
  "plugins": [
    "@babel/plugin-syntax-dynamic-import" 
  ],
    "env": {  
      "test": {
        "plugins": ["@babel/plugin-transform-runtime"],
      }
    }
} 

当我删除模块:错误测试正在运行时,是否有机会不将模块:false包含在测试中?

unit-testing webpack babel jest
1个回答
0
投票

import语句仅在ES模块中允许。您的测试在使用commonjs模块的Node中运行。

尝试将"type": "module"添加到您的package.json文件中

也请检查您正在运行的Node的版本,您可以在node docs https://nodejs.org/api/esm.html#esm_ecmascript_modules中找到有关此版本的更多信息>

© www.soinside.com 2019 - 2024. All rights reserved.