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.
Common errors
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.
Warnings
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.
Install
npm install babel-plugin-alias-modules yarn add babel-plugin-alias-modules pnpm add babel-plugin-alias-modules Imports
- default wrong
const babelPluginAliasModules = require('babel-plugin-alias-modules')correctimport babelPluginAliasModules from 'babel-plugin-alias-modules' - Config
import type { Config } from 'babel-plugin-alias-modules' - createVisitor
import { createVisitor } from 'babel-plugin-alias-modules'
Quickstart
// .babelrc.js
const aliasModules = require('babel-plugin-alias-modules');
module.exports = {
plugins: [
[aliasModules, { resolve: { aliasFields: ['browser'] } }]
]
};