我正在尝试使用libarchive.js解压一个受密码保护的压缩文件。
import {Archive} from 'libarchive.js/main.js';
Archive.init({
workerUrl: 'libarchive.js/dist/worker-bundle.js'
});
document.getElementById('file').addEventListener('change', async (e) => {
const file = e.currentTarget.files[0];
const archive = await Archive.open(file);
let obj = await archive.extractFiles();
console.log(obj);
});当我运行这段代码时,控制台显示以下输出。

我已经尝试了很多类似下面的workerUrl。但是结果是一样的。
workerUrl: 'libarchive.js/dist/worker-bundle.js'
workerUrl: '/libarchive.js/dist/worker-bundle.js'
workerUrl: '../libarchive.js/dist/worker-bundle.js'
workerUrl: '../../libarchive.js/dist/worker-bundle.js'
workerUrl: '/node_modules/libarchive.js/dist/worker-bundle.js'
workerUrl: '../node_modules/libarchive.js/dist/worker-bundle.js'
workerUrl: '../../node_modules/libarchive.js/dist/worker-bundle.js'有什么问题吗?
谢谢。
发布于 2020-07-16 02:31:21
无论何时您看到以下内容:
▶ Uncaught SyntaxError: Unexpected token '<' some-file.js:1这通常是因为加载some-file.js的请求返回一个显示404错误的超文本标记语言页面,但它被解释为JavaScript并在第一个字符上崩溃,在超文本标记语言页面的源代码中,这个字符通常是<。
要解决您的问题,您可以尝试使用this answer中的以下网址
/lib/worker-bundle.js或者,您可以尝试在浏览器中直接查看worker-bundle.js。要么您将找到正确的URL,要么您将了解到您的服务器根本不提供该文件。
发布于 2020-07-24 14:15:27
我用了这段代码。
Archive.init({
workerUrl: '/libarchive.js/dist/worker-bundle.js',
});我将libarchive.js放在我的Vue项目的/public文件夹中。啊,真灵。
https://stackoverflow.com/questions/62668042
复制相似问题