opencv 如何从React transpile中排除js文件?

bq9c1y66  于 2023-04-21  发布在  React
关注(0)|答案(1)|浏览(87)

我正在做一个React项目,我的一个组件正在导入opencv.js。但这是一个很大的文件,启动构建将返回错误
JavaScript heap out of memory
我可以增加内存分配限制,但现在构建似乎没有结束。它已经运行了一个多小时。
有没有办法从transpile中排除这个文件?或者有没有更好的方法在我的项目中包含opencv?
var cv = require('../../src/opencv.js');
谢谢
我尝试过用不同的方法导入opencv.js,但每种方法都遇到了同样的问题。
我还尝试在package.json的start函数中删除opencv.js文件

"scripts": {
  "start": "react start && del src/opencv.js"
}
wnrlj8wa

wnrlj8wa1#

一种可能将opencv.js文件从转译过程中排除的方法是使用动态导入。这将允许您仅在组件需要时加载opencv.js文件,而不是在初始构建过程中加载它。
使用React功能组件的示例。

function MyComponent() {
  const [openCvLoaded, setOpenCvLoaded] = useState(false);

  const loadOpenCv = async () => {
    try {
      await import('path/to/opencv.js');
      setOpenCvLoaded(true);
    } catch (error) {
      console.error(error);
    }
  };

  return (
    <div>
      {!openCvLoaded && <button onClick={loadOpenCv}>Load OpenCV</button>}
      {openCvLoaded && <p>OpenCV is loaded!</p>}
    </div>
  );
}

相关问题