乐闻世界logo
搜索文章和话题

Webpack如何排除除文件夹外的node_modules

4 个月前提问
4 个月前修改
浏览次数39

1个答案

1

在配置Webpack时,有时我们需要排除node_modules文件夹以提高构建效率,避免处理不必要的文件。node_modules通常包含我们的应用程序依赖的库或框架,这些通常已经是压缩过的,且不需要被Webpack重新处理。

为了在Webpack中排除node_modules文件夹,我们可以在Webpack配置文件中的module部分使用exclude属性。这里是一个基本的例子:

javascript
module.exports = { // 其他配置... module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: { loader: 'babel-loader', options: { presets: ['@babel/preset-env'] } } } ] }, // 其他配置... };

在这个配置中:

  • test属性用来指定哪些文件将被当前的规则处理。这里它设置为处理所有.js文件。
  • exclude属性用来排除从规则中的文件或文件夹,这里我们排除了所有位于node_modules的文件。
  • use指定了当规则匹配到文件时使用的loader,这里使用的是babel-loader

这种配置确保了Webpack只会处理应用源码中的.js文件,而不会处理node_modules中的任何文件,从而加快构建过程。

此外,我们还可以通过配置Webpack的resolve.modules来优化模块解析,确保Webpack只在必要的目录中搜索模块:

javascript
module.exports = { // 其他配置... resolve: { modules: ['src', 'node_modules'], // 这告诉 Webpack 在 src 目录和 node_modules 中解析模块 }, // 其他配置... };

这样可以避免Webpack在不需要的目录中搜索模块,进一步提高构建效率。

2024年7月24日 17:22 回复

你的答案