Resolve alias webpack helper for Payload CMS
Encountered this?
ERROR in ./node_modules/next/dist/compiled/micromatch/index.js 22:3471-3486
Module not found: Error: Can't resolve 'util' in '\node_modules\next\dist\compiled\micromatch'
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: { "util": require.resolve("util/") }'
- install 'util'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "util": false }
Features
- Easy way to fix the webpack error
- Built-in list of common server-only modules
Installation
npm install payload-plugin-resolve-alias
# or
yarn add payload-plugin-resolve-alias
Usage
// payload.config.ts
import { resolveAlias, serverOnlyModules } from 'payload-plugin-resolve-alias'
export default buildConfig({
plugins: [
resolveAlias(serverOnlyModules, ['nodemailer']),
// Alternative syntax
resolveAlias(
// Object
{ nodemailer: false, passport: false },
// Arra
['nodemailer', 'passport'],
// String
'nodemailer',
'passport',
// Falsy arguments are ignored
process.env.NODE_ENV === 'production' && ['production-only']
),
],
})
Community-driven list of server-only modules
serverOnlyModules
is an array of modules that you probably don't want in the browser:
- express
- express-session
- nodemailer
- passport
- util
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Contributions and feedback are very welcome.
To get it running:
- Clone the project.
npm install
npm run build
Credits
License
The MIT License (MIT). Please see License File for more information.