webpack - 如何使用 Webpack 的 `raw-loader` 加载二进制文件?

标签 webpack

Webpack 的加载器通常加载文本文件,因此在大多数情况下,使用某些文本编码(通常是 UTF-8)转换加载文件的内容会更方便。另一方面,二进制文件不应该被转换,所以有一个 raw property对于加载器,它控制(每个加载器)是否应该应用 UTF-8 转换。
raw-loader应该将原始数据从文件加载到字符串而不进行任何转换,因此应该导出 raw 似乎合乎逻辑。属性为 true .然而,它没有,还有一个 unit test这应该确保 raw不导出。它似乎旨在仅用于基于文本的格式。

有没有办法解决?将二进制文件加载到字符串的替代方法是什么?

最佳答案

raw-loader包似乎只能正确加载仅由 7 位字符代码 0-127 组成的文本文件,而它不能正确处理字节值 >=128。
作为解决方案,请改用 binary-loader可以将完整的 8 位字节值加载为 javascript 字符串格式的包。如有必要,您可以将字符串转换为 Uint8Array。
例子:

// load contents of local file "test.bin" into a js string:
import binAsString from "!!binary-loader!./test.bin";

// if necessary, convert the imported string to Uint8Array:
let array = new Uint8Array(binAsString.length);
for (let i = 0; i < binAsString.length; i++) {
    array[i] = binAsString.charCodeAt(i);
}

关于webpack - 如何使用 Webpack 的 `raw-loader` 加载二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61964120/

相关文章:

reactjs - Webpack、React 热重载器和多个条目

javascript - 使用 Webpack 包含 HTML 部分

javascript - Webpack copyFiles将文件从子目录复制到主目录

javascript - 具有多个根和动态需求的 Webpack

jquery - 通过 Webpack 在 Rails 中安装 jQuery 时未定义 $

javascript - 获取库中的文件(汇总)

typescript - 如何使用 ts-loader 忽略 webpack 中的测试文件

java - 我应该如何在 Reactjs 应用程序中读取 AWS EC2 实例的环境变量

css - 在 Chrome DevTools 中实时更改 Vue.js 应用程序(Webpack 模板)的页面样式

webpack - loader/src/app/app.component.scss 中的错误没有返回字符串