修改Vite/Rollup中资产的构建路径?

2024-01-05

假设我有这个文件夹结构:

parent
|-parent.html
|-parent.js
|-child
|--child.html
|--child.js

我希望它们在我的 dist 文件夹中以相同的结构输出。 默认情况下,这是获取输出的内容:

dist/assets/parent.js
dist/assets/child.js

我希望他们像这样输出:

dist/parent/parent.js
dist/parent/child/child.js

我尝试改变assetFileNamesRollup 的选项,但它没有做任何事情。


输出文件名在 Rollup 中配置为build.rollupOptions https://vitejs.dev/config/#build-rollupoptions. Set output.entryFileNames https://rollupjs.org/guide/en/#outputentryfilenames配置条目的位置.js文件以匹配其原始目录结构:

// vite.config.js
import { fileURLToPath } from 'url';
import { defineConfig } from 'vite';
import path from 'path';

const rootDir = fileURLToPath(new URL('.', import.meta.url));

export default defineConfig({
  build: {
    rollupOptions: {
      input: {
        parent: './parent/parent.html',
        child: './parent/child/child.html',
      },
      output: {
        entryFileNames: (assetInfo) => {
          // assetInfo.facadeModuleId contains the file's full path
          if (assetInfo.facadeModuleId) {
            const assetPath = path.dirname(assetInfo.facadeModuleId).replace(rootDir, '');
            return assetPath + '/[name]-[hash].js';

          } else {
            return 'assets/js/[name]-[hash].js';
          }
        },
      },
    },
  },
});

demo https://stackblitz.com/edit/vitejs-output-file-paths-1amrwa?file=vite.config.js

Notes

  • 资产(例如.css文件)和共享模块(供应商.jschunks) 无法使用上述解决方案进行重定向,因为相关挂钩中的资产信息不提供文件的完整路径。

  • 在普通 Rollup 项目中,output.preserveModules=true https://rollupjs.org/guide/en/#outputpreservemodules本来就达到了最初的目的,但是这个选项和Vite自己的Rollup设置有冲突。

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

修改Vite/Rollup中资产的构建路径? 的相关文章

  • 仅当表单已提交时才触发 jQuery 表单验证?

    不引人注目的验证基于这样的想法 don t进行表单验证 直到用户提交表单 一旦发生这种情况 如果表单上的某些内容无效 那么一旦用户更改了每个字段 就会立即验证它 我想做的是 不显眼地 触发表单元素的验证 也就是说 only如果用户已尝试提交
  • 取消html5浏览器中的单图请求

    我正在动态加载 大 图像以绘制到 html5 画布中 如下所示 var t new Image t onload t src http myurl 但每隔一段时间就会想取消图片请求完全地 我想出的唯一方法是设置src to i e t sr
  • HTML/VBA Click 事件未触发

    这是我第一次在 StackOverflow 上发布问题 到目前为止 我已经能够通过 VBA 帮助论坛解决我的大部分问题 我的问题很简单 我有一个自动数据拉取 我需要在其中导出数据 我过去曾在这方面取得过成功 但这次略有不同 我尝试单击以生成
  • 访问sendBeacon发送的数据

    文档表明sendBeacon通过发送其数据HTTP POST request 但在 PHP 中 POST变量似乎是一个空数组 这是我的 JavaScript 代码 navigator sendBeacon beacon log php My
  • 动态速度计 javascript 或 jquery 插件

    我希望有动态ajax插件在页面上显示速度计 一个想法是我设置一个背景并旋转针 有人知道相关插件吗 这里有一些供您参考 http bernii github com gauge js http bernii github com gauge
  • VBA / HTML / jQuery 选择自动完成 - 在列表中选择

    我正在尝试使用 Excel 中的 VBA 在网站的列表中选择一个值 这不是一个 正常列表 该网站使用 jQuery 选择自动完成 如下所示 example http davidwalsh name demo jquery chosen ph
  • 如何在ASP.NET Webform中使用Jquery表单插件?

    我遇到了这个插件 http malsup com jquery form getting started http malsup com jquery form getting started 我想知道如何在 ASP NET WebForm
  • 在Javascript中按降序对字符串进行排序(最有效)?

    W3Schools 有这个例子 var fruits Banana Orange Apple Mango fruits sort fruits reverse 这是在 Javascript 中按降序对字符串进行排序的最有效方法吗 Updat
  • 消息“在 jest.setTimeout 指定的 5000 毫秒超时内未调用异步回调”

    我正在使用 Puppeteer 和 Jest 来运行一些前端测试 我的测试如下 describe Profile Tab Exists and Clickable settings user gt test Assert that you
  • 动画进度元素值

    我有一个progress元素 该元素如下所示 div class container div div div
  • Ember.js 处理 View 事件后转换到路由

    Setup 我有一个 Ember 应用程序 支持使用 Imgur API 上传图像 我已经有一个工作路线和模板来处理任何 Imgur ID 但我想在上传新图像后转换到此路线 使用返回的 Imgur ID 这是该应用程序的相关部分 http
  • Leaflet js虚构地图

    我是 Leaflet 的新手 我想了解如何创建完全交互式的虚构地图 我有一张图像想要转换为传单地图 该图像基本上像图表一样具有许多连接和点 我想首先将该图像转换为地图 能够将鼠标悬停在这些点上 突出显示它们并显示有关它们的信息 并且还可以在
  • 检查 touchend 是否在拖动后出现

    我有一些代码可以更改表的类 在手机上 有时表格对于屏幕来说太宽 用户将拖动 滚动来查看内容 但是 当他们触摸并拖动表格时 每次拖动都会触发 touchend 如何测试触摸端是否是触摸拖动的结果 我尝试跟踪dragstart和dragend
  • 仅一页 JavaScript 应用程序

    您是否尝试过单页 Web 应用程序 即浏览器仅从服务器 获取 一页 其余部分由客户端 JavaScript 代码处理 此类 应用程序页面 的一个很好的例子是 Gmail 对于更简单的应用程序 例如博客和 CMS 使用这种方法有哪些优点和缺点
  • 在为 RXJS 可观察量编写测试时,如何避免让调度程序通过我的业务逻辑?

    我发现使某些测试通过的唯一方法是显式地将调度程序传递给函数 为了便于说明 请考虑以下函数 function doStuff stream return stream delay 100 filter x gt x 2 0 map x gt
  • IE11不监听MSFullscreenChange事件

    我正在尝试使用 Bigscreen js 在 IE11 中使用全屏 但 IE11 不监听 MS FullscreenChange 事件 document addEventListener MSFullscreenChange functio
  • 为什么“tbody”不设置表格的背景颜色?

    我在用 tbody 作为 CSS 选择器来设置background color在一个表中 我这样做是因为我有多个 tbody 表内的部分 它们具有不同的背景颜色 我的问题是 当使用border radius在细胞上 细胞不尊重backgro
  • 数据表日期范围过滤器

    如何添加日期范围过滤器 like From To 我开始进行常规搜索和分页等工作 但我不知道如何制作日期范围过滤器 我正在使用数据表 1 10 11 版本 My code var oTable function callFilesTable
  • 在 Javascript 中减少/分组数组

    基于this https stackoverflow com a 40774906 3254598例如 我想以稍微不同的方式按对象进行分组 结果应该如下 key audi items make audi model r8 year 2012
  • KeyboardAvoidingView - 隐藏键盘时重置高度

    我正在使用 React NativeKeyboardAvoidingView设置我的高度View当显示键盘时 但是当我关闭应用程序中的键盘时 视图的高度不会变回原来的值

随机推荐

  • javascript postMessage 不工作

    我不知道该怎么办 我尝试了来自不同来源的几个示例代码 我在不同的浏览器中尝试了它们 从 Chrome 9 到 FF 4 但似乎仍然没有任何内容可以与 postMessage 功能一起使用 JS 控制台没有给我任何信息 没有一个错误 仍然没有
  • PowerShell 和 ActiveDirectory 模块 - 查找不属于特定组的用户

    上周 我第一次接触到 PowerShell 和 Active Directory 我希望能够找到非管理员与域管理员的用户列表 到目前为止 我知道如何使用以下命令 语句获取所有 ActiveDirectory 用户的所有属性 Get ADUs
  • 广义新类型推导

    Haskell 可以推导出以下实例MonadState s in T1低于但不在T2然而 这是一个非常相似的类型 我应该以什么方式修改代码T2这样的实例MonadState s可以自动导出吗 LANGUAGE GeneralizedNewt
  • Matlab 未绘制精确的傅里叶信号

    我正在尝试使用 Matlab 在傅立叶域中绘制一个简单的信号 它没有绘制正确的信号 这是我的代码 clc clear all close all x 1 0 001 10 f1 sin 2 pi 10 x f2 sin 2 pi 15 x
  • 使用 Properties.Default.Settings 时,应用程序会创建名称中带有“_”空格的文件夹

    所以情况就像 在程序集信息 对于 C Winform 应用程序 中 我这样输入 Now When I run it it creates folder with in name in place of Space Like this 它会在
  • Swift 3:无法将类型“NSMutableDictionary”的值转换为预期参数类型“[AnyHashable:Any]!”

    这段代码在 Swift 3 之前有效 诅咒你的 Swift 3 现在它显示了这个错误Flurry logEvent eventName withParameters userData line 无法将 NSMutableDictionary
  • MongoRepository的saveAll()是批量插入数据吗?

    我想让保存操作高效 所以我想偶尔向 Mongo 写入大量对象 即超过某些容量时 Would saveAll 为我做那个吗 我应该使用BulkOperations反而 简短的回答 是的 但前提是所有文件都是新的 如果没有 就会一一插入或更新
  • 使用 min(width, height)/2 作为半径在 WPF 中绘制圆

    如何在 WPF 中 没有代码隐藏 使用绘制圆min width height 2作为半径 您可以在纯 XAML 中执行此操作 只需对值使用 Binding 即可 您还必须确保所有内容都已命名
  • 如何使用 Javascript 替换字符串中的大引号?

    我正在尝试替换大引号 str I don t know what you mean by glory Alice said Using str replace g 为什么它不起作用 我怎样才能做到这一点 您可能必须 或更愿意 使用 Unic
  • 如果值被禁用,则 Select 的值 = null

    我有 Select 并且所有值都被禁用 如何将值设置为此 Select
  • 线程实现

    我想知道如何实施我自己的线程库 我拥有的是CPU PowerPC架构 和C标准库 有没有我可以看看的开源轻量级实现 最简单的线程需要 一些内存用于堆栈空间 存储其上下文的地方 即寄存器内容 程序计数器 堆栈指针等 最重要的是 您需要实现一个
  • 启用 mod_deflate 发送 Content-Encoding: gzip

    EDIT我发现问题实际上是PHP 缩小 http code google com p minify 这是发送压缩的内容而不是 Apache 我会找到更多这方面的信息 根据高性能网站 http oreilly com catalog 9780
  • F# 命令行文件顺序?

    为什么参数的顺序对于 F 来说很重要 对于 C 使用相同的编译模型 来说并不重要 当我尝试这个时 main fs module Main let main Printer print repeatedly 5 hello world pri
  • Android studio 2.2.0-rc1 gradle插件错误

    我刚刚将 Android Studio 更新到该版本2 2 0 rc1安卓得到错误 找不到 com android tools build gradle 2 2 0 rc1 在以下位置进行了搜索 https jcenter bintray
  • 将gradle依赖添加到库aar包中

    我正在为供应商制作一个库项目 它需要 Android Volley 作为依赖项 我用过这个在Android Studio中创建aar文件 https stackoverflow com questions 24309950 create a
  • 如何使用 Jest 测试 useParam() 函数

    Getting this error while testing a component having a hook useParam I fixed it using below code jest mock react router d
  • 无法将名称“repository:repositories”解析为“类型定义”组件

    我在编写 applicationContext xml 时遇到异常 org springframework beans factory xml XmlBeanDefinitionStoreException Line 18 in XML d
  • OpenCV + GigE 视觉相机 +c++

    几天以来 我开始研究 Mako 相机 使用以太网 GigE 我需要取回视频流以将其集成到软件公司中 我尝试在 code blocks 上使用 OpenCV 库 但总是出现错误 指出它无法看到视频流 有人可以帮助我吗 非常感谢你的帮助 inc
  • Tkinter 方法执行后立即

    TKinter after 方法立即执行 执行后暂停 3 秒 如果我还在 CheckStatus 函数中使用 after 方法 它将进入快速循环并且永远不会到达 mainloop 我究竟做错了什么 文档说该函数将在暂停时间之后调用 但实际上
  • 修改Vite/Rollup中资产的构建路径?

    假设我有这个文件夹结构 parent parent html parent js child child html child js 我希望它们在我的 dist 文件夹中以相同的结构输出 默认情况下 这是获取输出的内容 dist asset