小编Apf*_*box的帖子

使用 import.meta.env 测试 svelte 组件

我现在正在努力几天才能让我的测试设置运行。大致轮廓: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 …

jestjs babeljs svelte vite

8
推荐指数
1
解决办法
5043
查看次数

标签 统计

babeljs ×1

jestjs ×1

svelte ×1

vite ×1