当Jest.js
在代码中遇到import.meta
时,我得到一个错误:
FAIL testFile.test.ts
● Test suite failed to run
testFile.ts:40:10 - error TS1343: The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'esnext', or 'system'.
40 return import.meta?.env as EnvironmentalVariablesType
我安装了以下与babel相关的软件包:
// package.json
"devDependencies": {
"@babel/core": "^7.16.5",
"@babel/preset-env": "^7.16.5",
"@babel/preset-typescript": "^7.16.5",
"@vitejs/plugin-react-refresh": "1.3.6",
"babel-jest": "^27.4.5",
"jest": "27.3.1",
"jest-environment-jsdom-global": "3.0.0",
"react": "17.0.1",
"ts-jest": "27.0.7",
"typescript": "4.1.3",
"vite": "2.6.14"
"dependencies": {
"babel-plugin-transform-vite-meta-env": "^1.0.3",
"babel-preset-vite": "^1.0.4",
我按照以下方式设置了babel.config.js
:
module.exports = {
plugins: [ 'babel-plugin-transform-vite-meta-env' ],
presets: [
[
'@babel/preset-env',
{ targets: { node: 'current' } },
],
[ '@babel/preset-typescript' ],
[ 'babel-preset-vite' ],
],
}
还有我的vite.config.js
import { defineConfig } from 'vite'
import reactRefresh from '@vitejs/plugin-react-refresh'
import replace from '@rollup/plugin-replace'
// https://vitejs.dev/config/
export default defineConfig( {
base: '/time/',
server: {
port: 9000,
},
plugins: [
reactRefresh(),
replace( {
'process.env.NODE_ENV': JSON.stringify( 'development' ),
'process.env.SHOW_DEV_TOOLS': JSON.stringify( 'true' ),
} ),
],
} )
尝试过
module
在tsconfig.json中设置为es2020
、esnext
或system
所有这些都没有清除或更改终端错误。
上面是否有错误的配置,妨碍Jest正确运行babel?
发布于 2022-03-29 19:24:29
.env
的项目根文件夹中创建package.json文件.env
文件中提供env变量import.meta.env.YOUR_VAR
更改为process.env.YOUR_VAR
vite.config.ts
并列出vite-plugin-环境:import EnvironmentPlugin from 'vite-plugin-environment';
...
plugins: [
react(),
...
EnvironmentPlugin('all')
]
Jest会理解process.env.YOUR_VAR
,所以如果您将所有的import.meta.env.YOUR_VAR
更改为process.env.YOUR_VAR
,您的测试就会通过,而不会出现import.meta.env
错误。
https://stackoverflow.com/questions/70440505
复制相似问题