Rollup 4来了

2023-10-05  rollup 正式发布 4.x 版本

官网文档

重大变更

  • 所需的最低Node 版本现在是 18.0.0
  • 浏览器版本现在依赖于还需要提供的 WASM 二进制文件
  • NodeJS 构建现在依赖于可选的原生二进制文件;对于不支持的平台,用户可以使用与rollup具有相同接口但依赖于 WASM 二进制文件的 @rollup/wasm-node 包 
  • 导入属性的“with”语法尚不受支持,正在等待 SWC 中的支持
  • INVALID_IMPORT_ASSERTION 错误代码已替换为 INVALID_IMPORT_ATTRIBUTE
  • Rollup 现在将警告无效位置的 @__PURE__ 和 @__NO_SIDE_EFFECTS__ 注释
  • 如果 输入/入口 模块以 #!...注释开头,则此注释 #!... 将附加到输出 和 es cjs 格式前面 
  • 文件哈希(file hashes)现在将使用 url-safe 的 base64 编码哈希
  • 最大哈希长度已减少到 22 个字符
  • RollupWarning 该类型已被删除,取而代之的是该 RollupLog 类型

Rollup Options 的变动

  • 不再支持 Acorn 插件,该 acornInjectPlugins 选项已被删除
  • acorn 选项已被删除 
  • output.externalImportAssertions 已被弃用,取而代之的是 output.externalImportAttributes
  • inlineDynamicImports , manualChunks 并且 preserveModules 已在输入选项中删除:请使用同名的相应输出选项
  • 已删除输出选项 
    • output.experimentalDeepDynamicChunkOptimization :不再需要此选项,因为Rollup现在始终运行完整的分块算法( full chunking algorithm)·
    • output.dynamicImportFunction :改用 renderDynamicImport 插件钩子
    • output.namespaceToStringTag :改用 output.generatedCode.symbols
    • output.preferConst :改用 output.generatedCode.constBindings

Plugin 插件接口变动

  • 对于 this.resolve ,该 skipSelf 选项的默认值现在为 true
  • this.parse 现在仅支持该 allowReturnOutsideFunction 选项 
  • 导入断言现在使用新的导入属性 AST 结构
  • 插件接口不同位置的“assertions”已替换为“attributes” 
  • 如果模块ID的导入由插件的加载钩子处理,则如果模块ID对应于实际路径,rollup.watch将不再监视实际文件;如果这是预期的,则插件负责为任何依赖文件调用this.addWatchFile。
  • buildStart和其他钩子提供的标准化输入选项不再包含onwarn处理程序;插件应使用onLog代替。
  • this.moduleIds 已从插件上下文中删除:改用 this.getModuleIds()
  • 该标志已从返回的 中删除 ModuleInfo thi s.getModuleInfo() : hasModuleSideEffects ModuleInfo 代替使用 moduleSideEffects

特性

  • 通过切换到基于 SWC 的本机解析器来提高解析速度
  • Rollup 现在将警告无效位置的 @__PURE__ 和 @__NO_SIDE_EFFECTS__ 注释
  • 解析器现在作为单独的导出 parseAst 公开

Bug 修复

  • 如果虚拟文件的名称与实际文件名相对应,则Rollup不再尝试监视虚拟文件;相反,插件通过 this.addWatchFile()  处理监视

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle的rollup函数主要用于分组汇总数据。当使用rollup函数时,如果有n个字段,则会按照不同的字段组合进行分组统计。具体来说,rollup函数会从左到右依次增加一个字段,进行分组统计,同时也会去掉所有分组字段进行一次总体统计。因此,使用rollup函数可以得到从0列到n列的分组维度。 举个例子,如果有一个名为T_STUDENT_GRADES的表,包含如下字段:CLASS(班级)、STUDENT(学生姓名)、SUBJECT(科目)和GRADES(成绩)。可以使用rollup函数进行分组汇总操作。 - 如果只按照CLASS字段进行分组汇总,可以使用以下语句:select CLASS, sum(GRADES) from T_STUDENT_GRADES group by rollup(CLASS)。这将得到每个班级的总成绩,以及所有班级的总成绩。 - 如果同时按照CLASS和STUDENT字段进行分组汇总,可以使用以下语句:select CLASS, STUDENT, sum(GRADES) from T_STUDENT_GRADES group by rollup(CLASS, STUDENT)。这将得到每个班级每个学生的总成绩,以及每个班级的总成绩和所有班级的总成绩。 - 如果按照CLASS、STUDENT和SUBJECT字段进行分组汇总,可以使用以下语句:select CLASS, STUDENT, SUBJECT, sum(GRADES) from T_STUDENT_GRADES group by rollup(CLASS, STUDENT, SUBJECT)。这将得到每个班级每个学生每个科目的总成绩,以及每个班级每个学生的总成绩、每个班级的总成绩和所有班级的总成绩。 通过使用rollup函数,可以方便地进行多层次的分组汇总,从而得到更详细的统计结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值