stripe__WEBPACK_IMPORTED_MODULE_0__.default is not a constructor
Shows how to fix stripe__WEBPACK_IMPORTED_MODULE_0__.default is not a constructor. Use it when you hit this exact problem. Skip it when your error message or symptom looks different.
TL;DR
Try to use it in a server route. [stylessh (reporter), confirmed by remi-stripe (maintainer)]: Root cause was the reporter's own webpack custom rule that loaded the canvas.node module with raw-loader - its regex also matched a stripe file ending in.node, corrupting the import.
Steps
- Create a next 13 app.
- Create a
stripe.tsfile to initialize the library. - Try to use it in a server route.
- [stylessh (reporter), confirmed by remi-stripe (maintainer)]: Root cause was the reporter's own webpack custom rule that loaded the canvas.node module with raw-loader - its regex also matched a stripe file ending in
.node, corrupting the import. Fixed by narrowing the regex to match onlycanvas.node; the library loads correctly after that.
When to use
You are seeing this: Issue stripe/stripe-node#1896 (closed, 12 comments): ### Describe the bug I receive an error when importing stripe: [image] [image] I'm using next 13 with app dir and latest version of stripe. Use this skill when you run into "stripe_WEBPACKIMPORTEDMODULE0__.default is not a constructor".
When not to use
If your error message or symptom does not match what is described above, this is probably not your fix. Search for your exact error text instead of forcing this one to fit.
Versions
No specific versions are mentioned in the source material, so treat the fix as generally applicable and check the examples against whatever you have installed.
Why this happens
The original report does not dig into a root cause. It documents the symptom and the fix that resolved it.