{"id":19021,"library":"babel-plugin-alias-modules","title":"babel-plugin-alias-modules","description":"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.","status":"active","version":"2.32.2","language":"javascript","source_language":"en","source_url":"https://github.com/liferay/liferay-frontend-projects","tags":["javascript"],"install":[{"cmd":"npm install babel-plugin-alias-modules","lang":"bash","label":"npm"},{"cmd":"yarn add babel-plugin-alias-modules","lang":"bash","label":"yarn"},{"cmd":"pnpm add babel-plugin-alias-modules","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency for Babel plugin API","package":"babel-core","optional":true}],"imports":[{"note":"CommonJS require works but ESM is preferred in modern Babel configs.","wrong":"const babelPluginAliasModules = require('babel-plugin-alias-modules')","symbol":"default","correct":"import babelPluginAliasModules from 'babel-plugin-alias-modules'"},{"note":"TypeScript type import; not available in older versions.","wrong":null,"symbol":"Config","correct":"import type { Config } from 'babel-plugin-alias-modules'"},{"note":"Internal helper, not part of public API.","wrong":null,"symbol":"createVisitor","correct":"import { createVisitor } from 'babel-plugin-alias-modules'"}],"quickstart":{"code":"// .babelrc.js\nconst aliasModules = require('babel-plugin-alias-modules');\n\nmodule.exports = {\n  plugins: [\n    [aliasModules, { resolve: { aliasFields: ['browser'] } }]\n  ]\n};","lang":"javascript","description":"Basic Babel plugin configuration to alias modules using the 'browser' field from package.json."},"warnings":[{"fix":"Explicitly set resolve.aliasFields to include 'unpkg' or 'jsdelivr' if needed.","message":"The default value for resolve.aliasFields was changed to ['browser'], dropping 'unpkg' and 'jsdelivr' support due to issues.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Move configuration from .npmbundlerrc to Babel plugin options.","message":"Using global config .npmbundlerrc is deprecated; use plugin options directly.","severity":"deprecated","affected_versions":">=2.0.0"},{"fix":"Include the companion plugin for full alias functionality.","message":"This plugin only redirects require() calls; external aliasing requires companion plugin liferay-npm-bundler-plugin-replace-browser-modules.","severity":"gotcha","affected_versions":">=0.1.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run npm install babel-plugin-alias-modules --save-dev","cause":"Plugin not installed or missing from node_modules.","error":"Error: Cannot find module 'babel-plugin-alias-modules'"},{"fix":"Use require('babel-plugin-alias-modules') (CommonJS) or default import.","cause":"Incorrect plugin import syntax in Babel config.","error":"TypeError: [BABEL] unknown: Plugin is not a function or object"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}