我正在尝试从使用Vite(版本4.0.4)创建的Vue应用程序中使用StencilJS构建的Web组件库导入自定义Web组件。
import { createApp } from 'vue';
import App from './App.vue';
import { defineCustomElements } from '@arnab7/cheesejs/loader';
createApp(App).mount('#app');
defineCustomElements(window);
在我的App.vue中,这是导致问题的原因:
<template>
<div id="body">
<checker-board></checker-board>
</div>
</template>
<checker-board></checker-board>
导致错误。完整的错误文本为:
“获取http://localhost:5174/node_modules/. vite/deps/checker-board. entry. js?import网络::错误中止504(网关超时)类型错误:无法获取动态导入的模块:未捕获(在承诺中)类型错误:无法读取initializeComponent(index-e0 c21 bd 2.js:917:23)处未定义(阅读“isProxy”)的属性”
删除Web组件将删除所有错误。这是指向我尝试从中导入的库(我创建的库)的链接:https://github.com/arnab4477/CheeseJS我在构建时遵循了Stencil文档中的所有说明,没有发现库本身有任何问题。我在其他库中也发现了一些类似的问题。但是,这个库是延迟加载的(Stencil延迟加载所有组件),这可能是导致Vite出现问题的原因。
我看过许多类似的问题,尝试过多种解决方案,但都没有成功
在Github上也有一些类似的问题,Vite也会对其他依赖项抛出这个错误。我遵循了建议的解决方案,但没有一个有效。我试过了
1.重新启动服务器
1.删除并重新安装node_modules
1.从node_modules中删除.vite文件夹,但在重新启动后仍会重新出现
1.运行我在github上找到的这个命令,它解决了某人的问题:节点。/节点模块/esbuild/安装. js
我也看到过这个非常相似的问题:Importing Bootstrap to Vue 3 causes net::ERR_ABORTED 504 (Gateway Timeout),其中重新启动和重新安装node_modules修复了问题。我已经尝试了解决方案,但它对我不起作用。
我不知道还能怎么办。谁来帮帮我。
编辑:
为了确保问题出在Vite端,而不是图书馆端,我很快创建了一个Create React应用程序,并在那里测试了它。它运行得很完美。所以至少我有一个解决方案,但不幸的是,现在我似乎不得不使用CRA,我真的不想再碰它了。有人能为Vite提供任何解决方案吗?
1条答案
按热度按时间qvk1mo1f1#
下面是关于Vite的Github回购协议的两个相关问题/讨论:
在后一期中,github用户allowing评论了一个解决方案(链接):
运行
node ./node_modules/esbuild/install.js
添加了github用户evanw(链接):
原来npm v7有一个破坏package-lock.json文件的bug:npm/cli#2606。当这种情况发生时,带有安装后脚本的软件包(如esbuild)可能会崩溃。您可能会遇到此错误。解决方法是删除并重新创建package-lock.json文件。
这为我(和其他人)解决了这个问题。