什么意思-!webpack 加载器字符串中的意思是什么?

Red*_*ter 3 webpack

我见过一些加载器查询,require('-!some-loader!file.ext')但无法-!在文档中找到任何参考。我还看到过一些以!!. 它们的含义是什么?它们记录在哪里?

Ric*_*sta 5

不应使用诸如require('some-loader!file.ext')和类型前缀之类的内联加载器,因为它们是非标准的。!

但是,它们可以由加载程序生成的代码使用。


简而言之,这些前缀分为三种类型。它们用于覆盖默认的加载程序顺序配置,以适应需要或导入某些文件时的特殊情况。

假设您不希望配置文件中存在的加载程序评估某个文件,那么您可以在!加载程序之前使用单个文件。请注意,它!也用于分离装载机。

如果您偶然配置了预加载器和/或后加载器,则可以通过添加前缀来禁用这些加载器以!!禁用所有加载器,或-!禁用除后加载器之外的所有加载器。

前置加载器和后置加载器,顾名思义,定义了加载器的使用顺序。使用enforce: "pre"或在配置文件中定义它们enforce: "post"

再次,但引用自webpack 文档

  • 前缀为 ! 将禁用所有配置的普通加载程序

import Styles from '!style-loader!css-loader?modules!./styles.css';

  • 前缀为 !! 将禁用所有配置的加载器(preLoaders、loaders、postLoaders)

import Styles from '!!style-loader!css-loader?modules!./styles.css';

  • 前缀为 -! 将禁用所有配置的 preLoaders 和 loader,但不禁用 postLoaders

import Styles from '-!style-loader!css-loader?modules!./styles.css';