webpack loader字符串中的-!是什么意思?

3

我见过一些 loader 查询,例如 require('-!some-loader!file.ext'),但是在文档中没有找到任何关于 -! 的参考。我也见过一些以 !! 开头的查询。它们的含义是什么,文档在哪里?

1个回答

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和loaders,但不包括postLoaders

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接