最佳答案
无论我怎么尝试,我都无法摆脱这个 SyntaxError: Cannot use import statement outside a module
错误,这让我很沮丧。这里有人解决了这个问题吗?我读过无数的 stackoverflow 和 github 问题线程。没有明确的解决方案。
这是一个反应,打字,Webpack 项目。我正在测试一个模块。但是 Jest 不会改变 模块转换为普通的 javascript。
/Users/me/dev/Project/project/node_modules/variables/src/variables.js:12
import './main.js';
^^^^^^
SyntaxError: Cannot use import statement outside a module
17 |
18 | */
> 19 | import { GlobalVars } from 'variables'
| ^
20 |
21 | export const Vars = new GlobalVars()
22 |
在 babel.config
: env.test.preset: ['@babel/plugin-transform-modules-commonjs']
中使用 env
设置
将 Jest 配置中的 transform
设置修改为 '^.+\\.jsx?$': 'babel-jest', '^.+\\.tsx?$': 'ts-jest'
,以及围绕这一点的所有其他可能性。
在 Jest 配置中,testPathIgnorePatterns
,transformIgnorePatterns
使用 .babel.config.js
而不是 .babelrc.js
甚至更多。
包裹 Json
"jest": {
"preset": "ts-jest",
"testEnvironment": "node"
}
. babelrc.js
module.exports = {
presets: [
['@babel/preset-env', { targets: { node: 'current' } }],
'@babel/preset-react',
'@babel/preset-typescript',
],
plugins: [
'@babel/plugin-transform-runtime',
'@babel/proposal-class-properties',
'@babel/transform-regenerator',
'@babel/plugin-transform-template-literals',
'react-hot-loader/babel',
],
}
变量
import { GlobalVars } from 'variables'
export const Vars = new GlobalVars()
Variable.spec.ts
import { Vars } from './variables.ts'
describe('Test The Package', () => {
it('Should accept new variables', () => {
Vars.newVariable = 'new variable'
expect(Vars.newVariable).toEqual('new variable')
})
})
有什么办法解决这个问题吗?