babel-plugin-alias-modules

raw JSON →
2.32.2 verified Sat Apr 25 auth: no javascript

A Babel plugin that rewrites aliased require() calls based on fields in package.json, such as the 'browser' field. Version 2.32.2 is current, maintained as part of the Liferay npm bundler toolkit. It enables module aliasing like webpack's resolve.aliasFields, scanning package.json for alias fields and redirecting require() calls. It only handles the local redirection part; external aliasing is handled by a companion plugin. Useful for isomorphic packages and browser polyfills.

error Error: Cannot find module 'babel-plugin-alias-modules'
cause Plugin not installed or missing from node_modules.
fix
Run npm install babel-plugin-alias-modules --save-dev
error TypeError: [BABEL] unknown: Plugin is not a function or object
cause Incorrect plugin import syntax in Babel config.
fix
Use require('babel-plugin-alias-modules') (CommonJS) or default import.
breaking The default value for resolve.aliasFields was changed to ['browser'], dropping 'unpkg' and 'jsdelivr' support due to issues.
fix Explicitly set resolve.aliasFields to include 'unpkg' or 'jsdelivr' if needed.
deprecated Using global config .npmbundlerrc is deprecated; use plugin options directly.
fix Move configuration from .npmbundlerrc to Babel plugin options.
gotcha This plugin only redirects require() calls; external aliasing requires companion plugin liferay-npm-bundler-plugin-replace-browser-modules.
fix Include the companion plugin for full alias functionality.
npm install babel-plugin-alias-modules
yarn add babel-plugin-alias-modules
pnpm add babel-plugin-alias-modules

Basic Babel plugin configuration to alias modules using the 'browser' field from package.json.

// .babelrc.js
const aliasModules = require('babel-plugin-alias-modules');

module.exports = {
  plugins: [
    [aliasModules, { resolve: { aliasFields: ['browser'] } }]
  ]
};