当前位置: 首页 > 知识库问答 >
问题:

前端 - vite如何实现js或css文件加载失败的自动重试?

魏俊茂
2024-02-26

有2个前后端分离的项目,前端代码分别使用webpack和vite进行构建。
因为服务器某些改动影响,导致在环境上前端的静态资源文件加载可能会出现随机性的偶然失败(SSL认证失败),问题根因是已知的,现在考虑前端侧如何去规避。
使用webpack构建的项目可以使用 webpack-retry-chunk-load-plugin 规避。
但是vite好像搜不到类似的插件可以实现?

共有3个答案

颜熙云
2024-02-26

这个不应该是开发脚手架的工作,哪里出问题就修哪里,该修服务器就去修服务器。

濮阳祯
2024-02-26

vite 使用 import() 加载模块, 所以没办法在运行时对加载失败的资源进行重试. 见官方成员回复: retry chunk load plugin #11967

你可以把 vite 打包替换成 webpack 打包解决这个问题, 不过修改服务器的问题才是最好的解决方式

袁运良
2024-02-26

当使用 Vite 进行构建时,你可以通过自定义插件来实现自动重试加载失败的 JavaScript 或 CSS 文件。Vite 提供了插件系统,允许你扩展构建过程并处理各种任务。

以下是一个简单的示例,展示如何使用 Vite 插件实现自动重试加载失败的静态资源文件:

首先,创建一个名为 vite-retry-load-plugin.js 的文件,并在其中编写以下代码:

const { defineConfig } = require('vite');// 定义插件配置const plugin = {  name: 'vite-retry-load-plugin',  configResolved(config) {    // 修改静态资源文件的加载配置    config.build.outFiles = config.build.outFiles.map(file => {      return {        ...file,        loader: 'url-loader', // 假设你的静态资源文件使用 url-loader 进行加载        options: {          ...file.options,          // 自动重试加载失败的文件          onLoadError: true,        },      };    });  },};// 导出插件配置module.exports = defineConfig({ plugins: [plugin] });

接下来,在你的 Vite 项目根目录下创建一个名为 vite.config.js 的文件,并将以下代码添加到该文件中:

import { defineConfig } from 'vite';import viteRetryLoadPlugin from './vite-retry-load-plugin'; // 引入自定义插件export default defineConfig({  plugins: [viteRetryLoadPlugin], // 添加自定义插件到构建配置中});

通过以上步骤,你已经创建了一个自定义的 Vite 插件,该插件会在构建过程中修改静态资源文件的加载配置,以实现自动重试加载失败的文件。现在,当你运行 Vite 构建项目时,Vite 将使用自定义的插件配置来处理加载失败的静态资源文件。

 类似资料:
  • 问题内容: 我正在开发Web应用程序。我正在使用AngularJS将所有文件动态加载到UI中。 我有一个文件,可在单击或加载时将所有文件动态加载到其中。 现在我的登录页面看起来像下面的结构 现在我的问题是,尽管我能够加载手风琴的menu.html文件,但是却无法加载它所依赖的css和js文件。我已经研究了stackoverflow,但是没有一个对我有用。 任何人都可以帮助确定使用AngularJS

  • 本文向大家介绍在css加载完毕后自动判断页面是否加入css或js文件,包括了在css加载完毕后自动判断页面是否加入css或js文件的使用技巧和注意事项,需要的朋友参考一下 最近在写项目的framework,写个JQueryMessageBox的类,以使用jquery ui中的dialog()来显示消息框,为了使方法方便调用,便加入了自动判断页面是否加入了ui.js和ui.css,代码如下: 但CS

  • 一个webview加载本地css以及js文件的例子。点击”Click me“触发的动作是调用本地js文件完成的。 [Code4App.com]

  • 本文向大家介绍JS加载器如何动态加载外部js文件,包括了JS加载器如何动态加载外部js文件的使用技巧和注意事项,需要的朋友参考一下 今天在网上找到了一个可以动态加载js文件的js加载器,具体代码如下: JsLoader.js JsLoader.js测试 测试结果如下:

  • 本文向大家介绍jQuery动态加载css文件实现方法,包括了jQuery动态加载css文件实现方法的使用技巧和注意事项,需要的朋友参考一下 有时我们可能会需要使用 jQuery 来加载一个外部的 css 文件,如在切换页面布局时。思路是创建一个 link 元素,并将它添加到 标记中即可,下边首先看看怎么使用 jQuery 来实现。 下边是我喜欢的写法: 有些朋友可能会使用下边的写法,只是形式有些小