在 Vite 中禁用预加载

2024-03-01

我正在将一个使用 Vue 2 和 Webpack 的大项目迁移到 Vue 3 和 Vite。到目前为止,一切看起来都很棒,但是当我们第一次尝试发布到生产环境时,我们注意到注入了许多模块预加载标签,并且其中的许多文件可能永远不会被使用。

问题是,如何禁用预加载项目?如果不可能,有没有办法告诉 Vite 一些导入它永远不应该预加载?

不预加载的一个用例是模拟文件,该文件仅在开发环境中动态导入,但在代码中引用。由于它是延迟加载的,我不会对 Webpack 产生任何问题,但 Vite 提前进行了优化并包含了它发现的所有内容。

我们的代码库中的示例:

export const fetchData = createGetService({
  url: '/example-endpoint',
  mocker: async () => (await import('./example.mocker')).mockExample(),
});

Since Vite 3.1我们有一个用于控制预载的配置选项。

// vite.config.js

import {defineConfig} from 'vite'

export default defineConfig({
    ...
    build: {
        // Disables the preload.
        modulePreload: false,

        // Or you can specify what should be preloaded.
        modulePreload: {
            resolveDependencies(url, deps, context) {
                return [] // Your list of preloaded deps.
            },
        },
    },
})

它记录在配置部分 https://vitejs.dev/config/build-options.html#build-modulepreload在投票网站上。

更多技术细节可以在请求请求 https://github.com/vitejs/vite/pull/9938实现该功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Vite 中禁用预加载 的相关文章

  • 我正在尝试向我的 vue.js 项目添加背景图像

    我想添加覆盖整个页面的背景图像 然而现在看起来是这样的 我希望它跨越整个网页 在 vue js 中这将如何完成 我还想要一个动画工具栏 以便当页面不滚动时工具栏是透明的并呈现背景图像的外观 当它滚动时 工具栏将具有当前的蓝色 这是我的小提琴
  • 如何将类型设置为 vue slot props Typescript

    我正在尝试在插槽道具上设置类型以在表格组件中进行处理 如图所示 我也一直在尝试 body item UserItem 但这只是重命名参数 body
  • 从 vue 子组件获取数据并绑定到父组件中的对象

  • 访问 nuxt 配置文件中的存储

    我想添加通过 Nuxt 静态生成的动态路由 我定义了一个客户端 服务器端存储asyncData方法 我想将这个存储值 一个数组 映射到我的nuxt config js文件使其成为 动态 静态 路线图nuxt generate命令 但如何访问
  • 如何在Vue.js中格式化当前日期格式

    我需要获取当前日期Vue js 为此 我使用了以下方法 today date new Date toJSON slice 0 10 replace g today date将给出日期2019 09 11格式 有什么方法可以自定义这种格式吗
  • Eslint 状态已声明 [Vuex]

    我正在运行 ESLint 目前遇到以下 ESLint 错误 错误 状态 已在上部范围无阴影中声明 const state date show false const getters date state gt state date show
  • Vue.js + Element UI:在更改时获取“event.target”

    我无法获取在事件处理程序中触发事件的 html 字段 在 javascript 中是event target 我有一个表格 附加到更改事件函数的输入元素 管理更改事件的函数 我的代码如下 var Main methods change pa
  • Vue.js - 以编程方式设置槽内容

    有什么办法可以从组件内部设置 覆盖插槽的内容吗 喜欢 模板 div div
  • 删除Vue子组件

    我真的被这个问题困扰了 我创建了一个由子组件组成的 Vue 2 0 组件 它全部都是 Webpacked 等 例如 这是父组件 div h1 This is just a title for lulz h1 div
  • 如何使用 TypeScript 接口输入 Vue 提示 props?

    这件事真的让我的头撞到了墙上 我记得在 Angular 工作时 TS 接口可用于输入提示参数 我想对 Vue 中的 props 做同样的事情 有任何想法吗 代码如下 但仅针对标准对象进行检查 因此传入任何对象都是有效的 import Vue
  • vue如何设置嵌套对象的默认道具

    我的道具是这样的 house kitchen sink 我尝试过类似的事情 但没有成功 props house type Object default gt kitchen sink 如何为此类对象设置默认道具 来自文档 对象或数组默认值必
  • 在Vue.js 3中添加全局变量

    如何在 Vue js 3 中添加全局变量 在 Vue js 2 中 我们在main js file Vue prototype myGlobalVariable globalVariable 最直接的替换就是app config globa
  • Vue 异步 catch 块中的错误对象在调试器中未定义

    我有这个 Vue 组件 它工作正常 但在 VSCode 中调试是一个问题
  • 使用 vue-cli 服务时如何禁用 linting?

    我正在使用以下命令使用 vue cli 运行我的项目 vue cli service 服务 open 如何禁用所有 linting 目前每次保存时都会重新进行 linting 并且更改代码需要很长时间 我已经把 lintOnSave fal
  • Vue SPA - 如何在浏览器中呈现时隐藏 .vue 文件

    我正在开发一个用 Vue js 开发的单页应用程序 托管在 Node js 服务器上 目前它仍在开发中 但最终将暴露给外部客户 并且由于我们将处理敏感数据 我们希望避免在用户检查元素时看到 vue 文件和相对文件树结构在开发工具中 See
  • 实现npm包自定义组件VueJS

    我正在尝试使用以下 npm package 来绕过 X frame 选项 https www npmjs com package x frame bypass https www npmjs com package x frame bypa
  • Vue-动态导入vue组件

    我有很多组件 我想按需导入 我有一个下拉菜单 其中实际上包含组件列表 即要加载的内容 我试过这个例子
  • Vuetify:v-ripple 只能用于块级元素

    我今天刚开始收到此错误 它破坏了我的整个网站 因为我像个傻瓜一样在页面加载时加载 Vuetify 有谁知道这意味着什么或如何解决它 谷歌搜索没有发现任何有用的信息 Edit 对于因网站也损坏而发现此问题的任何人 这可能是因为您加载的位置vu
  • Vue - 调度完成后调用 store getter?

    我正在使用 Laravel 5 7 Vue2 Vuex 我在调度调用完成后让 Vue 返回存储值时遇到一些困难 我的申请流程如下 我单击一个提交按钮 该按钮调用组件上的 validate Validate 分派到我的 addLease 操作
  • nuxt.js - 如何在服务器端为所有客户端缓存 axios 调用

    我正在使用 vue nuxt js 应用程序 我想知道是否可以为所有客户端缓存 axios webservice 调用 我必须获取一些货币参考数据 而每个客户都必须调用这些数据并没有多大意义 有人可以给我一些提示 甚至是一个例子吗 谢谢 这

随机推荐

  • 在单个文件中重新启动/撤消冲突解决方案

    在具有多个冲突文件的较大 git 合并中 我错误地将文件标记为已解决 使用git add FILE经过一些编辑 现在我想撤消冲突解决尝试并重新开始解决该文件 我怎样才能做到这一点 在这里找到了解决方案 http gitster livejo
  • 使用 valueForKeyPath 获取数组元素

    有什么办法可以访问NSArray元素与valueForKeyPath 例如 谷歌的反向地理编码服务返回非常复杂的数据结构 如果我想获取城市 现在我必须将其分成两个调用 如下所示 NSDictionary address NSString s
  • 计算 PHP echo 表中的出现次数

    我是 PHP 和 MySQL 的新手 虽然 StackOverflow 上有很多这方面的示例 但它们都不太适合我的情况 所以 我有一张表 名为votes 看起来像这样 student name student id teacher Joe
  • 解释重构[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Question 我的问题是如何教授整理和重构代码的方法和重要性 背景 我最近正在为一位同事进行代码审查 他们对早已消失的同事工作做了一些
  • 如何在 UIlabel 中显示阿拉伯语文本

    我从服务器得到这个字符串作为响应 它实际上是阿拉伯语 1606 1585 1610 1583 1571 1606 1606 1585 1609 1607 1584 1575 1601 1610 1575 1604 1604 1594 157
  • 展平 Scala Spark Dataframe 中的嵌套 json

    我有多个来自任何restapi 的json 但我不知道它的架构 我无法使用 dataframes 的爆炸功能 因为我不知道由 Spark api 创建的列名称 1 我们可以通过解码值来存储嵌套数组元素的键吗dataframe schema
  • Firefox 中的 Ctrl+r 用于刷新页面和我的 php 代码

    我创建了一个表单 所以它是 PHP 和 HTML 混合代码 它有能力发送 POST 当我单击它时 它可以完美地发送和显示输入 But there s something happening when i click Ctrl R in fi
  • OpenCV CUDA Morphology 比 CPU 慢得多

    我正在处理维度图像2208x1242来自 while 循环中的视频 使用 C 和 OpenCV 为了加快速度 我想在 Nvidia Jetson Nano 的 GPU 上执行操作 对于从 BGR 到 HSV 的颜色转换 使用cv cuda
  • 我可以将主窗口过程作为 WinMain 中的 lambda 吗?

    我有一个简单的窗口应用程序 其中声明了主窗口回调过程 WNDCLASSEXW wcx wcx lpfnWndProc MainWndProc 并在之后WinMain我宣布LRESULT CALLBACK MainWndProc HWND m
  • 更改列表的第 n 个元素

    我想更改列表的第 n 个元素并返回一个新列表 我想到了三个相当不优雅的解决方案 defun set nth1 list n value let list2 copy seq list setf elt list2 n value list2
  • Chrome 扩展程序中 Facebook.com 上的 POST 请求失败

    我有一个 Chrome 扩展程序 可以在每个页面上发送包含一些数据的 AJAX POST 问题是 Facebook 阻止了 AJAX 请求 导致 拒绝连接到 URL HERE 因为它 违反以下内容安全策略指令 connect src htt
  • python pandas 将数据帧转换为具有多个值的字典

    我有一个包含 2 列地址和 ID 的数据框 我想在字典中合并具有相同地址的 ID import pandas as pd numpy as np df pd DataFrame Address 12 A 66 C 10 B 10 B 12
  • ClojureScript clojure.set?

    如何在 ClojureScript 中使用 clojure set 我总是收到错误 def middle land set for x water hor y vec clojure set difference set range 0 b
  • 带有片段的空白活动不在 Android Studio 中

    您好 我的问题是 当我想在 Android studio 中创建一个新项目并且我想选择带有片段的空白活动时 不是将活动添加到移动窗口 有什么解决方案可以帮助我修复它吗 进入下一页后即可找到它 只需选中 使用片段 框 然后单击 完成
  • Bootstrap Affix 更改列表项宽度

    我正在使用 Twitter Bootstrap 的后缀来附加当前包含导航列表的左栏 div class row div class span3 ul class nav nav list li class nav header Naviga
  • 专门为代表 Now 的 DateTime 制作一个包装器是个好主意吗?

    我最近注意到 为了模拟和测试目的 使用代表 现在 的 DateTime 作为方法的输入参数确实很好 而不是每个方法都调用DateTime UtcNow他们自己 我在上面的方法中执行一次 然后将其转发到下面的方法中 所以很多需要 现在 的方法
  • 我通过 Axios 来自 API 并使用 Vue 显示的数据未显示

    我刚刚开始学习 Vue Js 我试图从 API 中获取一些信息并将其显示在表格中 我真的看不出问题出在哪里 我彻底浏览了代码 但无法弄清楚问题出在哪里 下面是我写的代码 我很漂亮 这是一件小事 或者在当前版本的 Vue 中是否有新的方法来做
  • 在Qt中,QEvent意味着失去窗口焦点,重新获得窗口焦点? (设置透明度)

    当我的应用程序失去焦点时 我需要设置透明度 我还需要在重新获得焦点时重置透明度 通过鼠标单击或 alt tab 或其他方式 我知道如何设置透明度 所以这不是问题 设置窗口不透明度 0 75 问题是何时 我同意 K vin Renella 的
  • 从 SecureRandom 获取确定性值?

    出于基准测试的目的 我希望 SecureRandom 产生确定性的输出 这是否可以通过使用种子 或者算法的规范 来实现 import java security SecureRandom class TestSecureRandom pub
  • 在 Vite 中禁用预加载

    我正在将一个使用 Vue 2 和 Webpack 的大项目迁移到 Vue 3 和 Vite 到目前为止 一切看起来都很棒 但是当我们第一次尝试发布到生产环境时 我们注意到注入了许多模块预加载标签 并且其中的许多文件可能永远不会被使用 问题是