到目前为止,还没有任何方法可以将本机JS脚本与从C ++代码(来自Emscripten,chirp,clang-8 +,..)生成的模块组合在一起,从而可以在< em>重用在Node.js 和浏览器环境中都可以使用的模块(即不必重新处理它们)?
这句话很长-让我举个例子:
我想用JavaScript编写一些代码(例如测试代码),该代码使用C ++中实现的库(例如foo
)。
我当前的(工作)设置如下:
浏览器
test1.js \
\
===(webpack)==> full.js
/
foo.cpp ==(emscripten)==> foo.js /
Node.js:
foo.cpp ==(gcc/N-API)==> foo.node <--(require)-- test1.js
浏览器方法的问题是(AFAIK)每次我修改/交换test1.js
时都必须重新运行WebPack才能将更改带给浏览器。
就我而言,运行webpack
可能会花费很长时间,并且生成的工件非常大(10MB的倍数)。另外,我想在没有WebPack的相对较小的设备上运行代码,所以我什至每次都必须将这些工件传输到设备上。
因此,我现在想在一个地方(例如,在设备上)保留一个包含我的foo
模块(可能看起来像什么)的预处理工件,同时仅交换相对较小的本机JavaScript代码( test1.js
)。 (想象一下一个测试场景,其中连续执行了数百个test*.js
文件)
使用现代的浏览器/工具,ES6,ESM或您可以想到的任何方法-有没有办法为浏览器实现这一目标?
加分点是一个答案,它使我能够编写无需修改即可在Node.js 和浏览器中使用的代码。:)
抱歉:这是对this问题的修改,当我什至不想使用WebPack时,但现在我降低了期望值。.