jimp icon indicating copy to clipboard operation
jimp copied to clipboard

@jimp/png won't work with @jimp/custom

Open gevhambarzumyan93 opened this issue 1 year ago • 0 comments

Expected Behavior

it should read PNG files as it does with the JPEG and others

Current Behavior

I am using customJimp with Vite and whenever I include the JIMP/png package inside my config files JIMP throws an error

Failure Information (for bugs)

Uncaught TypeError: Cannot read properties of undefined (reading 'toString')
    at node_modules/browserify-zlib/lib/index.js (chunk-BDYZPAYP.js?v=25465f5d:7645:100)
    at __require2 (chunk-R3NO7AUE.js?v=25465f5d:26:50)
    at node_modules/pngjs/lib/parser-async.js (chunk-BDYZPAYP.js?v=25465f5d:9212:16)
    at __require2 (chunk-R3NO7AUE.js?v=25465f5d:26:50)
    at node_modules/pngjs/lib/png.js (chunk-BDYZPAYP.js?v=25465f5d:10164:18)
    at __require2 (chunk-R3NO7AUE.js?v=25465f5d:26:50)
    at chunk-BDYZPAYP.js?v=25465f5d:10299:28
node_modules/browserify-zlib/lib/index.js @ chunk-BDYZPAYP.js?v=25465f5d:7645
__require2 @ chunk-R3NO7AUE.js?v=25465f5d:26
node_modules/pngjs/lib/parser-async.js @ chunk-BDYZPAYP.js?v=25465f5d:9212
__require2 @ chunk-R3NO7AUE.js?v=25465f5d:26
node_modules/pngjs/lib/png.js @ chunk-BDYZPAYP.js?v=25465f5d:10164
__require2 @ chunk-R3NO7AUE.js?v=25465f5d:26
(anonymous) @ chunk-BDYZPAYP.js?v=25465f5d:10299

Steps to Reproduce

nothing particulate.

create config and import it.

everything is ok until I import PNG as a type

import bmp from "@jimp/bmp";
import configure from "@jimp/custom";
import gif from "@jimp/gif";
import jpeg from "@jimp/jpeg";
import blur from "@jimp/plugin-blur";
import color from "@jimp/plugin-color";
import contain from "@jimp/plugin-contain";
import normalize from "@jimp/plugin-normalize";
import resize from "@jimp/plugin-resize";
import png from "@jimp/png";
import tiff from "@jimp/tiff";

export default configure({
  types: [jpeg, png, bmp, gif, tiff],
  plugins: [resize, blur, color, contain, normalize],
});

Context

vite.config

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import inject from '@rollup/plugin-inject'
import { nodePolyfills } from 'vite-plugin-node-polyfills'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    react(),
    inject({
      modules: { Buffer: ['buffer', 'Buffer'] }
    }),
    nodePolyfills()
  ]
})

package.json

{
  "name": "jimp-vite",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "tsc && vite build",
    "build:ghpages": "tsc && vite build --base=/jimp-vite/",
    "preview": "vite preview"
  },
  "dependencies": {
    "@jimp/core": "^0.22.10",
    "@jimp/custom": "^0.22.10",
    "@jimp/jpeg": "^0.22.10",
    "@jimp/plugin-resize": "^0.22.10",
    "@jimp/plugins": "^0.22.10",
    "@jimp/plugin-blur": "^0.22.10",
    "@jimp/plugin-color": "^0.22.10",
    "@jimp/plugin-contain": "^0.22.10",
    "@jimp/plugin-normalize": "^0.22.10",
    "@jimp/bmp": "^0.22.10",
    "@jimp/gif": "^0.22.10",
    "@jimp/png": "^0.22.10",
    "@jimp/tiff": "^0.22.10",
    "buffer": "^6.0.3",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "timm": "^1.7.1",
    "pngjs": "^7.0.0"
  },
  "devDependencies": {
    "@rollup/plugin-inject": "^5.0.5",
    "@types/react": "^18.2.48",
    "@types/react-dom": "^18.2.18",
    "@jimp/types": "^0.22.10",
    "@vitejs/plugin-react": "^4.2.1",
    "npm-run-all": "^4.1.5",
    "patch-package": "^8.0.0",
    "typescript": "^5.3.3",
    "vite": "^5.0.11",
    "vite-plugin-node-polyfills": "^0.19.0"
  }
}

  • Jimp Version: 0.22.10
  • Operating System: macOS
  • Node version: 16

Failure Logs

gevhambarzumyan93 avatar Jan 19 '24 12:01 gevhambarzumyan93