picsoung / airtable-shipping-block

10 stars 6 forks source link

Polyfill issue with Webpack v5 #3

Open johnboiles opened 2 years ago

johnboiles commented 2 years ago

Looks like AirTable is now on Webpack v5 which doesn't include the http/https polyfills by default which leads to this error:

Module not found: Error: Can't resolve 'http' in '/Users/johnboiles/Developer/repos/sindarin-inc/airtable-shipping-block/node_modules/shippo/lib'

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: { "http": require.resolve("stream-http") }'
    - install 'stream-http'
If you don't want to include a polyfill, you can use an empty module like this:
    resolve.fallback: { "http": false }.
❌ Please check that the import path "http" is correct in "/Users/johnboiles/Developer/repos/sindarin-inc/airtable-shipping-block/node_modules/shippo/lib/Resource.js" at line 3 column 11 to 26 and run `npm install` in /Users/johnboiles/Developer/repos/sindarin-inc/airtable-shipping-block to install packages.

But since AirTable doesn't give you access to the webpack config, I'm not sure how to resolve this. Any ideas?

Related issue: https://github.com/Airtable/blocks/issues/27

Copperdictator27 commented 2 years ago

I am having the same issue! I tried to override the webpack config file to resolve the missing dependencies but it still hasn't worked for me.

I found this article helpful for a work-around idea: https://www.alchemy.com/blog/how-to-polyfill-node-core-modules-in-webpack-5

Hoping maybe someone might catch something I missed...?