我有类似的设置,但我使用的是 SASS。我有一个自定义目标来执行命令npm run sass
,因此文件是作为该dotnet build
过程的一部分生成的,这使得手表重新触发器在无限循环中构建。
就我而言,我找到的解决方案如下:
- 改变
DefaultItemExcludes
:
<PropertyGroup>
<DefaultItemExcludes>$(DefaultItemExcludes);Features/**/*.css</DefaultItemExcludes>
</PropertyGroup>
- 调整确保 css 编译目标在之前运行
BeforeResGen
而不是Compile
(我之前使用的):
<Target Name="CompileScopedScss" BeforeTargets="BeforeResGen">
<Exec Command="npm run sass -- %(ScopedScssFiles.FullPath) %(RootDir)%(Directory)%(FileName).css --no-source-map" />
</Target>
- 包含 css 文件并设置
Watch="False"
:
<ItemGroup>
<Content Include="Features/**/*.css" Watch="False" />
</ItemGroup>
我在前一个目标之后的目标中执行此操作,但它似乎也在它之外工作。
在我的情况下,仅使用<Content Update... Watch="False" />
是不够的。在我的情况下<Watch Remove="..." />
也不起作用,我相信这可能与文件是在构建过程中生成的事实有关。