我在我的 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",