Существует очень простой способ сделать это: установите для скрытого атрибута папку, которую следует исключить, и aspnet_compiler
пропустит ее.
Типичным случаем для этой ошибки является созданная папка node_modules
.npm install
Если вы запускаете npm install
из скрипта или из командной строки, вы можете запустить команду attrib
, после запуска nmp install
, чтобы скрыть папку:
attrib +H node_modules
Если вы запускаете npm install
из проекта msbuild
, вы можете добавить задачу exec
, например:
<PropertyGroup>
<HideFolder>attrib +H "$(PackageJsonFolder)\node_modules"</HideFolder>
</PropertyGroup>
<!-- next line is for debugging, remove it when finished -->
<Warning Text="Hide node_modules command: '$(HideFolder)'"/>
<Exec Command="$(HideFolder)">
Код выхода для команды attrib
всегда равен нулю, вменьше всего в моих тестах, поэтому нет смысла проверять его, чтобы определить, была ли команда выполнена успешно.
В предыдущем примере msbuild
папка для скрытия была "$(PackageJsonFolder)\node_modules"
, потому что свойство PackageJsonFolder
являетсяимя папки, в которой находится packages.json
файл, и, таким образом, где будет создано node_modules
.
В других случаях вы всегда можете указать свою папку относительно местоположения проекта, например:
<HideFolder>attrib +H "$(MSBuildProjectDirectory)\folder\to\hide"</HideFolder>
и выполните команду, используя ту же известь из предыдущего примера.