JavaScript Worklet接口只接受带有 ES6 类的文件作为方法的参数Worklet.addModule
。我有一个 webpack 之外的解决方法来缩小我的 CSS Paint 工作文件并将其放在我的 dist 文件夹中,但它会使开发中的迭代变慢。我想通过 webpack 处理这个文件,只进行缩小,没有编译,没有 webpack cruft 将类包装在一个函数中,这些都不起作用。
我已经搜索了一整天并尝试noParse
从 Babel 中排除,但我仍然将缩小的类包装在一个函数中。有没有办法只通过 webpack 缩小?
//entry point
//my workaround
CSS.paintWorklet.addModule('./demo.min.js');// I minify and name it
//can I do the following?
import(/* webpackChunkName: "paint-worklet" */ './demo')
.then((demo) => CSS.paintWorklet.addModule(demo));
//output worklet
//my workaround
class Demo{......
...(minified)
...
......}registerPaint("demo",Demo);// defined and everything works
//webpacked and excluded from Babel
(window.webpackJsonp=window.webpackJsonp||[]).push([[2],
{w0gx:function(t,e){class r......
...
...
.......registerPaint("demo",r)}}]);// wrapped in function and undefined
不需要像通常使用 webpack 模块那样导入工作集,只需调用addModule
它即可。我需要将其缩小并输入dist/
,然后我需要一种方法在编译时获取散列名称以使其成为addModule
. 动态导入似乎可以工作,因此工作集是一个单独的块,并且在承诺解决后您可以addModule
使用它进行调用,但是由于工作集文件被包装在一个函数中,浏览器会抛出一个错误,说明registerPaint()
您使用类,未定义。