Javascript-Barcode-Reader icon indicating copy to clipboard operation
Javascript-Barcode-Reader copied to clipboard

Remove Jimp from dependencies for front-end projects

Open tonyfarney opened this issue 3 years ago • 0 comments

How can I install it (using NPM) in my angular project? The Jimp dependency appears to be not intended for front-end use and is causing errors after installing it in my angular project:

./node_modules/@jimp/core/es/index.js:42:33-46 - Error: Module not found: Error: Can't resolve 'fs' in '/front/node_modules/@jimp/core/es'

./node_modules/@jimp/core/es/index.js:44:35-50 - Error: Module not found: Error: Can't resolve 'path' in '/front/node_modules/@jimp/core/es'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
	- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "path": false }

./node_modules/@jimp/core/node_modules/mkdirp/index.js:1:11-26 - Error: Module not found: Error: Can't resolve 'path' in '/front/node_modules/@jimp/core/node_modules/mkdirp'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
	- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "path": false }

./node_modules/@jimp/core/node_modules/mkdirp/index.js:2:9-22 - Error: Module not found: Error: Can't resolve 'fs' in '/front/node_modules/@jimp/core/node_modules/mkdirp'

./node_modules/@jimp/plugin-print/es/index.js:14:35-50 - Error: Module not found: Error: Can't resolve 'path' in '/front/node_modules/@jimp/plugin-print/es'

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }'
	- install 'path-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: { "path": false }

...

The workaround I found was to include the built file in my index.html:

<script src="//unpkg.com/javascript-barcode-reader"></script>

tonyfarney avatar Feb 18 '22 21:02 tonyfarney