我有一个ASP.NET MVC 5.0应用程序,我已经引入了一个package.json
文件来管理我项目中的JavaScript包(我在BundleConfig.cs中引用了node_modules路径来引入包)。 / p>
当我下载新版本的项目并构建它时,Visual Studio似乎会自动检索NPM包(我假设Visual Studio 2017内置了对此的支持)。
但是,当我发布我的应用程序时,不会生成node_modules文件夹。我将以下构建目标添加到我的web .csproj文件中,希望这将解决发布的依赖关系:
<Target Name="PrepublishScript" AfterTargets="PrepareForPublish">
<Exec Command="npm install"/>
</Target>
但是,该命令似乎没有被执行。
npm
命令肯定是我路径的一部分(即当我打开一个命令窗口并键入npm时它会执行)。
为什么这不起作用的任何想法?
这甚至是一种合理的方法吗?
答案 0 :(得分:0)
这对我有用:
<Target Name="CustomPostPublishActions" AfterTargets="GatherAllFilesToPublish">
<Exec Command="npm install" WorkingDirectory="$(PublishUrl)"></Exec>
</Target>
$(PublishUrl)似乎是一个内置变量,我用它来确保命令是在我发布文件的文件夹中执行的。
有一点需要注意的是,当使用IIS Web Deploy进行一键式发布时,这并没有什么帮助,我不知道我需要做些什么。