Fails to load third party libraries

1285
2
11-19-2021 06:00 PM
LaurynasGedminas2
Occasional Contributor

Hey, installed custom npm library, then i run ArcGISExperienceBuilder\client> npm start

 

it fails on many libraries:

 

ERROR in ./your-extensions/widgets/simple-lg/node_modules/debug/src/node.js 5:12-26
Module not found: Error: Can't resolve 'tty' in 'C:\Downloads\arcgis-experience-builder-1.6\ArcGISExperienceBuilder\client\your-extensions\widgets\simple-test\node_modules\debug\src'

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: { "tty": require.resolve("tty-browserify") }'
- install 'tty-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "tty": false }

0 Kudos
2 Replies
GavinRehkemper
Esri Contributor

Hi Laurynas, thanks for the question. Which NPM library are you using? Can you please give a step by step replication case that we can follow so we can see the same error you're getting? Thanks!

0 Kudos
LaurynasGedminas2
Occasional Contributor

Hey Gavin,

The library: https://www.npmjs.com/package/stserver-frontend-comp

I was able get workaround by modifying the webpack-extensions.common.js  resolve/fallback:

resolve: {
alias: webpackCommon.moduleAlias,
extensions: webpackCommon.extensions,
mainFields: webpackCommon.resolveMainFields,
fallback: {
"tty": require.resolve("tty-browserify"),
"https": require.resolve("https-browserify"),
"http": require.resolve("stream-http"),
"stream": require.resolve("stream-browserify"),
"zlib": require.resolve("browserify-zlib"),
"os": require.resolve("os-browserify/browser")
}
},

but the component fails to load into widget

Thank you,

Laurynas

0 Kudos