{"id":20708,"library":"webpack-babel-env-deps","title":"webpack-babel-env-deps","description":"A webpack helper to identify which npm dependencies need Babel transpilation by comparing their package.json engines and module fields against your project's Node.js targets. Version 1.6.4 is current; stable with minor releases. Key differentiator: automates the tedious manual process of checking each dependency's engine compatibility for transpilation decisions, integrating with @babel/preset-env to avoid over-transpiling or missing required transforms.","status":"active","version":"1.6.4","language":"javascript","source_language":"en","source_url":"https://github.com/AndersDJohnson/webpack-babel-env-deps","tags":["javascript","webpack","babel","es6","es2015","es2016","es7","transpile","babel-preset"],"install":[{"cmd":"npm install webpack-babel-env-deps","lang":"bash","label":"npm"},{"cmd":"yarn add webpack-babel-env-deps","lang":"bash","label":"yarn"},{"cmd":"pnpm add webpack-babel-env-deps","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency required for target comparison and integration","package":"@babel/preset-env","optional":false}],"imports":[{"note":"ESM export; also available as default export","wrong":"const findDependenciesToTranspile = require('webpack-babel-env-deps').findDependenciesToTranspile","symbol":"findDependenciesToTranspile","correct":"import { findDependenciesToTranspile } from 'webpack-babel-env-deps'"},{"note":"Default export is the main function; can be used directly.","wrong":"const webpackBabelEnvDeps = require('webpack-babel-env-deps').default","symbol":"default","correct":"import webpackBabelEnvDeps from 'webpack-babel-env-deps'"},{"note":"Named export for adding Babel plugins conditionally","wrong":"const addPlugins = require('webpack-babel-env-deps/addPlugins')","symbol":"addPlugins","correct":"import { addPlugins } from 'webpack-babel-env-deps'"}],"quickstart":{"code":"// webpack.config.js\nconst { findDependenciesToTranspile } = require('webpack-babel-env-deps');\n\nmodule.exports = {\n  // ...\n  module: {\n    rules: [\n      {\n        test: /\\.js$/,\n        exclude: filename => {\n          // Exclude node_modules except those that need transpilation\n          if (filename.indexOf('node_modules') === -1) return false;\n          return !findDependenciesToTranspile({\n            packageContent: { engines: { node: '>=6' } }, // your project's engines\n            dependencies: ['some-es6-pkg'], // list of dependency names\n          });\n        },\n        use: 'babel-loader',\n      },\n    ],\n  },\n};","lang":"javascript","description":"Shows how to exclude node_modules from Babel transpilation except for packages that require it based on their engines field."},"warnings":[{"fix":"Upgrade Node.js to >=6 or use older version of this package","message":"Node.js >=6 required, may not work with older Node.js versions","severity":"gotcha","affected_versions":"<1.0.0"},{"fix":"Ensure all dependencies have accurate engines field; use module field as fallback","message":"Use of engines field may cause false positives/negatives if dependencies don't specify engines","severity":"deprecated","affected_versions":"*"},{"fix":"Use default import or explicitly import named functions","message":"Default export may be mistaken for named export; import correctly","severity":"gotcha","affected_versions":"*"},{"fix":"Install @babel/preset-env@^7 alongside this package","message":"Requires @babel/preset-env as peer dependency at version ^7","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"npm install @babel/preset-env@^7","cause":"Missing peer dependency @babel/preset-env","error":"Cannot find module '@babel/preset-env'"},{"fix":"Use const { findDependenciesToTranspile } = require('webpack-babel-env-deps');","cause":"Importing incorrectly as default instead of named","error":"TypeError: findDependenciesToTranspile is not a function"},{"fix":"Check documentation for current API; use 'packageContent' and 'dependencies' arguments","cause":"Using deprecated options from older version of package or @babel/preset-env","error":"Error: Options 'targets' is deprecated"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}