thgh / payload-plugin-resolve-alias

Shorthand to add common webpack aliases

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Resolve alias webpack helper for Payload CMS

Software License Issues NPM

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:

  1. Clone the project.
  2. npm install
  3. npm run build

Credits

License

The MIT License (MIT). Please see License File for more information.

About

Shorthand to add common webpack aliases

License:MIT License


Languages

Language:TypeScript 100.0%