vite里面怎么使用tiff.js 转换图片

182 阅读1分钟

为什么有这个问题,之前一位同事问我,怎么好好在vue-cli里面可以的功能怎么在vite里面就坏了?

分析问题点,为什么vue-cli可 => 为什么vite不可以?

首先我们需要分析vue-cli底层api其实是webpack,而webpack支持情况如下

image.png

我们在分析一下vite需要的模式

image.png

然后我们在打开tiff.js 源码

image.png

真相大白了,这个是umd的,默认是vite是不支持的,找到问题点,然后就是这么解决了?

第一个想法就是查一下gtp,查完之后感觉不靠谱,各种插件,我觉得既然他编译出问题,不编译不就好了,我这脑子可以的,直接在 html 下面 <script src="https://cdn.jsdelivr.net/npm/tiff.js"></script> ,直接启动,ok!问题解决

贴上转换的代码


const readFileAsArrayBuffer = async (file) => {
  return new Promise((resolve, reject) => {
    const reader = new FileReader();
    reader.onload = () => resolve(reader.result);
    reader.onerror = reject;
    reader.readAsArrayBuffer(file);
  });
};

function arrayBufferToBase64(buffer) {
  const tiff = new window.Tiff({
    buffer: buffer,
  });
  //转成png格式的base64图片,将其用img标签展示即可
  console.log(tiff.toDataURL("image/png"));
}