Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 链接导入装入器并导出带有覆盖模块变量的库的装入器_Javascript_Webpack_Emscripten_Vorbis_Webpack Loader - Fatal编程技术网

Javascript 链接导入装入器并导出带有覆盖模块变量的库的装入器

Javascript 链接导入装入器并导出带有覆盖模块变量的库的装入器,javascript,webpack,emscripten,vorbis,webpack-loader,Javascript,Webpack,Emscripten,Vorbis,Webpack Loader,我正在尝试加载一个名为libvorbis.js的音频编码库,它是vorbis的emscripten编译版本 libvorbis.js需要在其作用域中使用窗口变量执行,并将类作为var公开,而不进行导出声明 通常,将导入加载程序和导出加载程序链接起来以获取这样一个文件是很容易的。 使用- 这将在libvorbis.js中以“this”的形式公开窗口对象,并将VorbisMediaRecorder取出,作为稍后运行的其他模块/代码所需的对此的返回 但是,libvorbis.js本身会覆盖'modul

我正在尝试加载一个名为libvorbis.js的音频编码库,它是vorbis的emscripten编译版本

libvorbis.js需要在其作用域中使用窗口变量执行,并将类作为var公开,而不进行导出声明

通常,将导入加载程序和导出加载程序链接起来以获取这样一个文件是很容易的。 使用-

这将在libvorbis.js中以“this”的形式公开窗口对象,并将VorbisMediaRecorder取出,作为稍后运行的其他模块/代码所需的对此的返回

但是,libvorbis.js本身会覆盖'module'变量,从而导致导出加载程序无法导出

libvorbis.js在其代码中有此签入

// node.js Environment
var module;
if (module && module.exports) {
    makeVorbisEncoderModule({}, module);
}

// Web Worker Environment
if (!module && this.document === undefined) {
    VorbisWorkerScript.main(this);
}
这将覆盖模块,导致webpack抛出此错误

commons.js:142 TypeError: Cannot set property 'exports' of undefined
因为它正试图逃跑

/*** EXPORTS FROM exports-loader ***/
module.exports = VorbisMediaRecorder;
关于如何解决这个问题有什么想法吗?我真的不想分叉libvorbis并修改它的源代码


libvorbis.js库是作为脚本包含在页面上的。

因此我解决了使用文件加载器的特殊问题。它将加载脚本,就像加载带有src等的文件一样。。。因此,它可以毫无问题地运行

# libvorbis must be resolved in window scope, use the file-loader
require 'file-loader?name=[name].[ext]!libvorbis.js/build/libvorbis.js'
# libvorbis must be resolved in window scope, use the file-loader
require 'file-loader?name=[name].[ext]!libvorbis.js/build/libvorbis.js'