是否有任何官方文档指定 ~ (代字号)在 Angular scss 导入路径中解析为 node_modules/?

Is there any official documentation specifying that ~ (tilde) resolves to node_modules/ in Angular scss import paths?

在 scss 导入路径中使用代字号 (~) 时,它会在 Angular 中扩展为 node_modules/。是否有任何官方文档说这是 Angular 或 webpack 的功能?

到目前为止,我在这件事上只发现了一些关于以前的 angular 版本的错误报告,说它已经坏了,还有一条评论说它是 an implementation detail that shouldn't be relied upon

我希望执行 ng eject 并检查配置,但该命令不再可用。

如果有人能指出一些官方文档说明 ~ 是 shorthand node_modules/ 的路径或一段源代码,我将不胜感激(例如配置文件)指定替换。 :)

基本上,我想弄清楚为什么会这样,以及如何工作。

这是 WebPack 的一个特性。波浪号解析由 Webpack 的 sass-loader 插件处理。我相信此功能的好处是 导入 资源(例如字体、图像等)到 CSS 文件中,直接从您的 WebPack 包中。因此,它必须支持解析 WebPack 路径的相同语法。

它在 importsToResolve.js 文件中实现。

https://github.com/webpack-contrib/sass-loader/blob/aa9b53b4d1c14117c4ca114a13cecb6e53b4e87a/src/importsToResolve.js#L12

这是一个很棒的功能,但是当您想在 WebPack 和非 Webpack 项目之间共享 SASS 文件时会出现问题,因为 node-sass 不支持此功能。