0

我在我的 vue 项目中使用 vue splide 并开玩笑进行测试。

当我尝试对导入 Splide 的组件运行测试时,我收到此错误:

/Users/me/dev/company/project/src/node_modules/@splidejs/vue-splide/src/js/index.js:8
import Splide from './components/Splide';
^^^^^^

SyntaxError: Cannot use import statement outside a module

  82 | </template>
  83 | <script type="module">
> 84 | import { Splide, SplideSlide } from "@splidejs/vue-splide";
     | ^

我相信这与我的笑话配置和转换脚本有关吗?

在我的 jest.config.js 中:

  transformIgnorePatterns: [
    "node_modules/(?!vee-validate/dist/rules)",
    "/node_modules/(?!vue-awesome)",
  ],
  transform: {
    "^.+\\.js$": "babel-jest",
    "^.+\\.(vue)$": "@vue/vue2-jest",
  },
  ...

在测试本身:

import { Splide } from "@splidejs/vue-splide";
import { setup, teardown } from "@/tests/utils/setup";

describe("Carousel component", () => {
  afterEach(() => {
    teardown();
  });
...

我不太明白正在转换或忽略什么,或者我需要在这里添加什么

node_modules/@splidejs/vue-splide/src/js/index.js 的内容为:

import Splide from './components/Splide';
import SplideSlide from './components/SplideSlide';

export default {
    install( Vue, options ) {
        Vue.component( Splide.name, Splide );
        Vue.component( SplideSlide.name, SplideSlide );
    }
};

export { Splide, SplideSlide };

所以我猜这是错误所指的非模块导入。有谁知道如何为开玩笑的配置纠正这个问题?

我尝试了多个 transformIngorePatterns 但它们似乎不正确,因为我总是收到相同的错误:

transformIgnorePatterns: [
    "node_modules/(?!vee-validate/dist/rules)",
    "/node_modules/(?!vue-awesome)",
    "node_modules/(?!splidejs)",
    "node_modules/(?!@splidejs)",
    "node_modules/(?!@splidejs/vue-splide)",
    "node_modules/(?!vue-splide)",
    "node_modules/(?!vue-splide/src/js/index)",
  ],

但是,我还发现 Splide package.json 将引发错误的文件声明为模块:

在 node_modules/vue-splide/package.json 中:

"module": "src/js/index.js",
4

0 回答 0