我现在正在努力几天才能让我的测试设置运行。大致轮廓:Vite、Svelte(带 ts)、Jest。
我使用 import.meta.env.SOMENAME 作为我的环境变量,尽管这对于开发来说效果很好,但一旦组件使用 import.meta.env 测试就会失败:
SyntaxError:无法在模块外部使用“import.meta”
我尝试过不同的变压器、babel 插件和配置,但从未成功......
我的笑话配置:
"jest": {
"globals": {
"ts-jest": {
"isolatedModules": true
}
},
"verbose": true,
"transform": {
"^.+\\.svelte$": [
"svelte-jester",
{
"preprocess": true
}
],
"^.+\\.ts$": "ts-jest",
"^.+\\.js$": "babel-jest"
},
"setupFilesAfterEnv": ["<rootDir>/setupTests.ts"],
"moduleFileExtensions": ["js", "ts", "svelte"]
}
Run Code Online (Sandbox Code Playgroud)
babel.config.js
module.exports = {
presets: [
[
"@babel/preset-env",
{
targets: {
node: "current"
}
}
]
]
};
Run Code Online (Sandbox Code Playgroud)
svelte.config.cjs
const sveltePreprocess = require('svelte-preprocess')
module.exports = {
emitCss: true,
preprocess: sveltePreprocess()
};
Run Code Online (Sandbox Code Playgroud)
除其他外,我尝试使用@babel/plugin-syntax-import-meta
但最终出现了相同的错误。vite-jest …