首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用打字本、微束为lit设置玩笑测试

用打字本、微束为lit设置玩笑测试
EN

Stack Overflow用户
提问于 2022-10-10 14:05:48
回答 1查看 82关注 0票数 2

我今天开始将我们的web组件迁移到lit,但是当我尝试运行第一个测试时,我得到了以下错误消息:

代码语言:javascript
复制
SyntaxError: Cannot use import statement outside a module

> 1 | import {LitElement, html, css, svg} from "lit";
    | ^
  2 | import {property} from 'lit/decorators.js';
  3 |

带有指向lit\index.js的指针

通过搜索网页,我了解到我需要配置jest,所以babel会预编译lit,但到目前为止,我还没有找到适合我的解决方案。

我使用以下配置将我的.babelrc设置为babel.config.js

代码语言:javascript
复制
module.exports = {
    "presets": [
        [
            "@babel/preset-env"
        ]
    ],
    "plugins": [
        ["transform-react-jsx", {"pragma": "h"}],
        "inline-svg"
    ]
}

(由于我们有一些包装组件,所以需要使用transform-react js选项)

jest.config.js有以下选项集:

代码语言:javascript
复制
module.exports = {
    preset: 'ts-jest',
    testEnvironment: 'jest-environment-jsdom',
    roots: [
        '<rootDir>/src',
    ],
    collectCoverageFrom: [
        '<rootDir>/src/**/*.tsx',
        '<rootDir>/src/**/*.ts',
        '!<rootDir>/src/test/**',
        '!<rootDir>/src/**/*.d.ts',
    ],
    coverageReporters: [
        'text-summary',
        'html',
        'lcov',
        'clover',
    ],
    coverageDirectory: './coverage/',
    collectCoverage: true,
    moduleDirectories: [
        'src',
        'node_modules',
    ],
    moduleFileExtensions: [
        'js',
        'ts',
        'tsx',
    ],
    moduleNameMapper: {
        '\\.(css)$': '<rootDir>/src/test/stubs/css.js',
    },
    snapshotSerializers: [
        'enzyme-to-json/serializer',
    ],
    snapshotResolver: '<rootDir>/src/test/snapshot-resolver.js',
    globals: {
        'ts-jest': {
            tsconfig: {
                allowJs: true,
            },
        },
    },
    setupFilesAfterEnv: [
        '<rootDir>/src/test/jest-setup.js',
    ],
    transform: {"^.+\\.(js|ts)x?$": 'ts-jest'},
    transformIgnorePatterns: ['node_modules/(?!(lit-element|lit-html|lit|@lit)/)'],
};

我为transformIgnorePatterns尝试了其他几种选择,包括将每个点燃的包单独传递到数组中,但没有成功,我错过了一个重要的选项吗?

EN

回答 1

Stack Overflow用户

发布于 2022-10-13 07:10:53

小宝贝。结果,我不得不将transformignorePatterns调整为:

transformIgnorePatterns: ['node_modules/(?!lit-element|lit-html|lit|@lit/)'] (在点燃的包裹周围没有括号)

在这里找到了answer,在这里OP只能使它与

(?!${['lit-element', 'lit-html', 'lit', '@lit'].join('|')})

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74016172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档