Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Angular build - Module not found: Error: Can't resolve 'console'

I have a problem with my Angular project build, and ultimately deployment to heroku. I'm using an old(ish) npm package called binary parser, which causes the following error on when I build / deploy to heroku: Module not found: Error: Can't resolve 'console' in '/tmp/build_e75b87f248f44978f9537d83b3172254/node_modules/binary-parser/dist'

The binary-parser.js has a line require("console"); which is used in exactly one place, so local builds succeed and the application works perfectly, if only I remove console from that line altogether. But as, heroku installs node modules when deploying, this only helps when I manually build the prod version.

I have installed typings for binary-parser and for TS, and also included "types": ["node"] in both tsconfig.json and tsconfig.app.json compilerOptions.

As angular these days doesn't really allow for webpack configuration, I've tried adding global.console = global.console || require('console-browserify'); (or) global.console = global.console || require('console'); to my polyfills, to no avail.

Any ideas on how to solve this? Do I need to configure a custom webpack to circumvent this? I'll gladly post additional information if necessary!

like image 906
Rutkula Avatar asked Jul 16 '26 03:07

Rutkula


2 Answers

Here's a possible cause, may or may not be what you or others reading this question are experiencing...

My IDE's auto importing added import * as console from "console"; when I typed console.log.

Solution was of course to remove that import statement.

like image 68
Dan. Avatar answered Jul 18 '26 15:07

Dan.


After trying for multiple hours to come up with the right configuration, the only solution I could come up with was forking the repo in question and changing tsconfig target from es5 to es6, which got rid of the console import altogether upon compilation.

like image 35
Rutkula Avatar answered Jul 18 '26 15:07

Rutkula