babel-loader-exclude-node-modules-except
raw JSON → 1.2.4 verified Sat Apr 25 auth: no javascript maintenance
A utility to create a regular expression for excluding all node_modules from Babel transpilation in webpack, except for specified modules. Current stable version is 1.2.4. Release cadence is low (last update 2020). It simplifies the common webpack pattern of allowing certain ES6 modules from node_modules to be transpiled while excluding the rest. Key differentiator: supports wildcard patterns for module names since v1.2.0, unlike manual regex construction.
Common errors
error Error: Cannot find module 'babel-loader-exclude-node-modules-except' ↓
cause Package not installed or not in node_modules.
fix
Run
npm install babel-loader-exclude-node-modules-except --save-dev error TypeError: module names is not iterable ↓
cause Called function with a string instead of an array of strings.
fix
Pass an array:
babelLoaderExcludeNodeModulesExcept(['module-name']) not a string. Warnings
breaking The function returns a RegExp, not a string or array. Do not use it as a string pattern. ↓
fix Use directly in the `exclude` property of webpack rule.
breaking Wildcard support added in v1.2.0. In v1.1.x, wildcards are not supported and will be treated literally. ↓
fix Update to v1.2.0+ or use exact module names.
gotcha The exclude pattern only works for top-level node_modules; it may not correctly handle nested dependencies. ↓
fix Manually add nested module paths if needed, or use a different approach.
Install
npm install babel-loader-exclude-node-modules-except yarn add babel-loader-exclude-node-modules-except pnpm add babel-loader-exclude-node-modules-except Imports
- default export wrong
import babelLoaderExcludeNodeModulesExcept from 'babel-loader-exclude-node-modules-except';correctconst babelLoaderExcludeNodeModulesExcept = require('babel-loader-exclude-node-modules-except'); - function call result wrong
exclude: babelLoaderExcludeNodeModulesExcept('swiper')correctexclude: babelLoaderExcludeNodeModulesExcept(['swiper', 'dom7']) - wildcard pattern wrong
exclude: babelLoaderExcludeNodeModulesExcept(['react*'])correctexclude: babelLoaderExcludeNodeModulesExcept(['react-*', '@scope/*'])
Quickstart
const babelLoaderExcludeNodeModulesExcept = require('babel-loader-exclude-node-modules-except');
// webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.js$/,
exclude: babelLoaderExcludeNodeModulesExcept([
'custom-jquery-methods',
'swiper',
'dom7'
]),
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
}
]
}
};