Angular 在未按预期工作的角度样式项目之间导入路径

Angular 在未按预期工作的角度样式项目之间导入路径,angular,sass,angular-material,Angular,Sass,Angular Material,我在Angular文档中读到,如果我添加Angular.json: "stylePreprocessorOptions": { "includePaths": [ "src/style-paths" ] } 通过这样做,我可以像这样使用导入: // A relative path works @import '../style-paths/variables'; // But now this works as well @import 'variables'; @impor

我在Angular文档中读到,如果我添加Angular.json:

"stylePreprocessorOptions": {
  "includePaths": [
    "src/style-paths"
  ]
}
通过这样做,我可以像这样使用导入:

// A relative path works
@import '../style-paths/variables';
// But now this works as well
@import 'variables';
@import '~scss/sub-folder1/stylesheetname';
我的问题是我有3个不同的样式文件夹,比如folder1样式、folder2样式和常用样式。在中,当我从common styles文件夹导入样式表时,我希望对folder1和2样式使用shortee导入

我使用了StylePreprocessions并在其中包含了一个公共样式路径,在更改了我的相对路径后,导入看起来如下所示:

// A relative path works
@import '../style-paths/variables';
// But now this works as well
@import 'variables';
@import '~scss/sub-folder1/stylesheetname';
虽然代码似乎在我的代码编辑器中工作,并且导入到了需要的地方,但在我运行styles文件夹中的warn sass命令后,我发现一个错误,它试图从node_模块获取导入。我认为这是因为“~”在import语句中,但如果没有它,它就看不到我的常用样式(仅通过相对路径,但它们太长了)

我是否需要检查其他配置?
如果您能帮我做些什么,或者我做错了什么,我将不胜感激。

您在includePaths中放了什么,相对于您的src文件夹,文件夹在哪里?我有一个名为projects的文件夹,其中有更多文件夹。2个应用程序、3个库和3个样式文件夹。作为两个应用程序,有两个src文件夹,每个应用程序中有一个。考虑到这一点,您认为最好将路径放置在何处。我猜,因为我在4个地方使用路径,所以我需要在多个地方使用它。目前,我在angular.json中到处都声明了它,看看它是否有效。在这两个应用程序和所有6个lib项目类型中。如果不使用includePath,我就无法使用说明中提到的导入“~sccs/etc.”。导入可以通过代码编辑器很好地工作,如果我单击它们,它们就会转到导入的地方。问题是,当我启动应用程序时,会出现导入错误。如果我进入样式文件夹并检查sass,它似乎试图从node_模块而不是我指定的路径进行导入。如果这些都使用相同的angular.json,我认为如果您使用以项目文件夹开头的includePath,例如
“projects/app1/src/styles”
“projects/app2/src/styles”
。据我所知,路径应始终相对于angular.json文件,并将应用于使用该文件的所有子项目。
~
用于引用node_modules文件夹中的样式,如您在问题中所述。问题是这些应用非常大(市场)。并且应用程序目录不包含任何样式,它们是按照Spartacus指南制作的,其中scss文件不再靠近角度组件,而是在不同的样式目录中。但是来自常用样式目录的导入路径太长,例如:“../../../../../../../../folder/subfolder1/subfolder2/stylesheet.scss”