Visual Studio 如何将 scss 文件从一个项目导入另一个项目

How to import scss files from one project into another in Visual Studio

我在使用 Gulp 任务 运行 编译的 Visual Studio (2019) 中的项目之间共享 scss 文件时遇到问题 运行 由 VS 的 Task Runner。

我有一个 ASP.NET 核心 (2.2) 网站,它使用 MVC 区域。每个区域都位于不同的 Razor class 库项目中。区域大部分是独立的,但它们确实共享一些样式,例如 header 的样式、控件、颜色、规范化等。我有一个 class 库,所有 RCL 都共享它。基本控制器、ViewModel 实现等。我也将共享的 scss 文件放在那里。我将 RCL-specific scss 文件放在它们应该去的地方,并指示任务运行器执行 gulp 任务,该任务将在构建之前为该 RCL 编译 scss 文件。结果 css 然后设置为始终复制到发布目录,效果很好。

RCL 结构:

- Areas
- Styles
--- main.scss
--- _partial1.scss
--- ...
--- _partialN.scss
--- _shared-"add as link".scss from elsewhere
- wwwroot / css / generated-css-goes-here.css

main.scss内容:

@import "shared-dependency1";
...
@import "shared-dependencyN";

@import "partial1";
...
@import "partialN";

我希望这会奏效,但我却得到:

events.js:173
      throw er; // Unhandled 'error' event
      ^
Error: Styles\main.scss
Error: File to import not found or unreadable: _colors.scss.
        on line 2 of Styles/main.scss
>> @import "_colors.scss";

因此,链接共享文件似乎不起作用。在我尝试一些神秘的方法来获取我的共享文件之前,我决定在这里向你们提问,以防有人已经解决了这个问题并且愿意分享。

我意识到我真的不需要费心链接共享文件。我选择使用到实际位置的相对路径并且它有效。如果有人有更好的解决方案,请随时发表评论/添加其他答案。

main.scss 在 RCL 中:

@import "../../Common/Styles/colors";
...

_partialX.scss 在 RCL 中:

/// <reference path="../../Common/Styles/colors" />
...