Webpack 的加载器通常加载文本文件,因此在大多数情况下,使用某种文本编码(通常是 UTF-8)转换加载文件的内容会更方便。另一方面,二进制文件不应该被转换,因此加载器有一个raw属性,它控制(每个加载器)是否应该应用 UTF-8 转换。
raw-loader应该将原始数据从文件加载到字符串而不进行任何转换,因此应该将属性导出raw为true. 然而,事实并非如此,而且还有一个单元测试应该确保raw不被导出。它似乎被设计为仅用于基于文本的格式。
有没有办法解决?将二进制文件加载到字符串的替代方法有哪些?
小智 7
该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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3445 次 |
| 最近记录: |