Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Sass转换:每个文件的预处理 问题_Asp.net_Sass_System.web.optimization_Bundletransformer - Fatal编程技术网

Asp.net Sass转换:每个文件的预处理 问题

Asp.net Sass转换:每个文件的预处理 问题,asp.net,sass,system.web.optimization,bundletransformer,Asp.net,Sass,System.web.optimization,Bundletransformer,我们正在为SASS/SCSS使用System.Web.Optimization捆绑和BundleTransformer。是否可以在每个sass文件之前调用一些预处理?不仅在包中包含的文件之前,而且在使用@import导入文件之前 如果您想在捆绑包中的每个文件之前进行一些预处理,可以添加一些自定义IItemTransform或IBundletTransform,但想象一下: Main.scss: @import '_mixin'; some styles _mixin.scss:

我们正在为SASS/SCSS使用System.Web.Optimization捆绑和BundleTransformer。是否可以在每个sass文件之前调用一些预处理?不仅在包中包含的文件之前,而且在使用@import导入文件之前

如果您想在捆绑包中的每个文件之前进行一些预处理,可以添加一些自定义IItemTransform或IBundletTransform,但想象一下:

Main.scss:
    @import '_mixin';
    some styles
_mixin.scss:
    some mixins
Main.scss包含在bundle中并将进行预处理,但_mixin.scss不包含在bundle中,因此scss编译器将从磁盘获取原始文件,而无需任何预处理

编译过程中有什么挂钩吗?还是其他方式

我们为什么需要这个? 我们常见的静态文件位于核心项目中。此核心静态项目作为IIS中的虚拟目录包含在其他项目中(调试中)或复制(发布中)。有了这个解决方案,我们可以在任何项目中使用“/SharedStatic/”,它总是被解析的:在调试中作为虚拟目录,在发布中作为常规路径

所以right@import to core项目必须是这样的(与BundleTransformer一起使用):

但是VS intellisense(或R#intellisense)和WebEssentials intellisense不理解编译时的导入。Intellisense只了解这一点:

@import '../../../../CoreProject/Static/_mixin.scss'

所以,我们的想法是在将导入从'../../../'绑定到'~/'

的过程中预处理scss文件,这样看来构建SASS并不容易

我们以另一种方式解决了这个问题:停止在IIS中使用虚拟目录,并在每个项目中包含指向共享人员的符号链接。现在看起来每个项目都有自己的/SharedStatic(它实际上是核心静态的符号链接)。这就解决了SCS的问题,因为我们可以在初始文件和编译前的文件中使用“../../SharedStatic/”,无需更改从一个到另一个的路径

@import '../../../../CoreProject/Static/_mixin.scss'