相关疑难解决方法(0)

如何在玩笑中解决“无法在模块外使用导入语句”

我有一个使用 TypeScript、Jest、Webpack 和 Babel 构建的 React 应用程序(不使用 Create React App)。尝试运行“yarn jest”时,出现以下错误:

开玩笑的错误

我尝试删除所有软件包并重新添加它们。它没有解决这个问题。我看过类似的问题和文档,但仍然误解了一些东西。我什至按照另一个指南从头开始设置这个环境,但我的代码仍然收到这个问题。

依赖包括...

"dependencies": {
        "@babel/plugin-transform-runtime": "^7.6.2",
        "@babel/polyfill": "^7.6.0",
        "babel-jest": "^24.9.0",
        "react": "^16.8.6",
        "react-dom": "^16.8.6",
        "react-test-renderer": "^16.11.0",
        "source-map-loader": "^0.2.4"
    },
    "devDependencies": {
        "@babel/core": "^7.6.0",
        "@babel/preset-env": "^7.6.0",
        "@babel/preset-react": "^7.0.0",
        "@types/enzyme": "^3.9.2",
        "@types/enzyme-adapter-react-16": "^1.0.5",
        "@types/jest": "^24.0.13",
Run Code Online (Sandbox Code Playgroud)

组件的导入行...

import * as React from "react";
import { BrowserRouter as Router, Route, Switch } from "react-router-dom";
import HomePage from "./components/pages";
import {
    Footer,
    Header,
    Navigation,
} from "./components/shared";
Run Code Online (Sandbox Code Playgroud)

测试文件....

import * as React from "react"; …
Run Code Online (Sandbox Code Playgroud)

reactjs jestjs babeljs babel-jest ts-jest

80
推荐指数
9
解决办法
7万
查看次数

Jest 无法加载 svg 文件

在我的应用程序中,我使用 React 和 TypeScript。我尝试运行 Jest 测试,但出现以下错误:

C:\Users\e-KDKK\workspace\konrad\mikskarpety\src\images\icons\Sock.svg:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){<svg xmlns="http://www.w3.org/2000/svg" width="18.725" height="23.947" viewBox="0 0 18.725 23.947">
                                                                                         ^

SyntaxError: Unexpected token <

  1 | import React, { FC } from 'react';
  2 | 
> 3 | import SockIcon from '../../images/icons/Sock.svg';
    | ^
  4 | 
  5 | export const Spinner: FC = () => {
  6 |   return (

  at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:537:17)
  at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:579:25)
  at Object.<anonymous> (src/components/Spinner/Spinner.tsx:3:1)
Run Code Online (Sandbox Code Playgroud)

这个文件甚至没有经过测试。我不知道为什么它试图编译它。我的jest.config.json文件只包含覆盖阈值。

我读到 jest 有时需要针对特定​​文件(如 SVG)进行额外的转换部分,但是当我添加到配置时

"transform": {
    "^.+\\.svg$": "jest-svg-transformer"
},
Run Code Online (Sandbox Code Playgroud)

我的错误信息仅更改为:

C:\Users\e-KDKK\workspace\konrad\mikskarpety\test\utils\debounce.test.ts:1 ({"Object.":function(module,exports,require,__dirname,__filename,global,jest){导入 …

javascript svg reactjs jestjs

12
推荐指数
6
解决办法
1万
查看次数

标签 统计

jestjs ×2

reactjs ×2

babel-jest ×1

babeljs ×1

javascript ×1

svg ×1

ts-jest ×1