gpt4 book ai didi

javascript - Webpack 中的排除选项与入口点

转载 作者:行者123 更新时间:2023-12-03 04:26:21 24 4
gpt4 key购买 nike

如果 Webpack 中有一个入口点,这是否意味着 Webpack 只会捆绑和转换该入口点中的文件或该入口点需要的文件?然后,这将自动否定或排除该入口点文件不需要的文件,对吗?为什么在 node_modules 中的文件的加载器配置中仍然需要排除选项?这不是你的入口点中的 required,所以我认为 webpack 会完全忽略这些文件,或者我缺少一些魔法吗?如果您没有排除选项,加载程序是否会自动尝试转换项目中的所有文件?

最佳答案

这些规则不包含任何文件,但它们将加载程序应用于满足条件的任何导入模块。规则上的 exclude 选项仅决定加载程序是否应处理已导入的文件。

node_modules 通常被排除在 .js 规则之外,因为通常没有理由转换它们,因为大多数包在发布之前就已经被转译了。必须处理您正在使用的整个 node_modules ,将大大增加构建时间,即使它只是一个加载器,至少它必须解析模块并返回一个有效的模块,这已经需要一些时间了。

excludeinclude 选项还有其他用途。例如,您可以决定使用 CSS modules对于您的项目,但您有一些依赖于常规(全局)CSS 的第三方库,并且您无法轻松更改使用 CSS 的代码。您可以定义以下规则:

{
// For all .css files except the ones in 3rd-party-lib
test: /\.css$/,
exclude: /3rd-party-lib/,
use: [
'style-loader',
{ loader: 'css-loader', options: { modules: true } }
]
},
{
// For all .css files in 3rd-party-lib
test: /\.css$/,
include: /3rd-party-lib/,
use: ['style-loader', 'css-loader']
}

这可能是任何事情,从更改一个选项到使用一组完全不同的加载器,即使文件类型可能相同。

关于javascript - Webpack 中的排除选项与入口点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43701840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com