代码之家  ›  专栏  ›  技术社区  ›  Ciaran Gallagher

在发布ASP之前执行“npm安装”。NET MVC 5.0项目

  •  4
  • Ciaran Gallagher  · 技术社区  · 7 年前

    我有一个ASP。NET MVC 5.0应用程序,我介绍了 package.json 文件来管理我的项目中的JavaScript包(我引用BundleConfig.cs中的node\u modules路径来拉入包)。

    当我拉下项目的新版本并构建它时,Visual Studio似乎会自动检索NPM包(我假设Visual Studio 2017内置了对此的支持)。

    但是,当我发布应用程序时,不会生成node\u modules文件夹。我将以下构建目标添加到我的web。csproj文件,希望这将解决对发布的依赖:

      <Target Name="PrepublishScript" AfterTargets="PrepareForPublish">
        <Exec Command="npm install"/>
      </Target>
    

    但是,该命令似乎没有执行。

    这个 npm 命令肯定是我路径的一部分(即,当我打开命令窗口并键入它执行的npm时)。

    你知道为什么这样不行吗?

    这是一个合理的方法吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Ciaran Gallagher    6 年前

    这对我很有用:

    <Target Name="CustomPostPublishActions" AfterTargets="GatherAllFilesToPublish"> 
       <Exec Command="npm install" WorkingDirectory="$(PublishUrl)"></Exec>
    </Target>
    

    $(PublishUrl) 似乎是一个内置变量,我使用该变量来确保命令是在将已发布文件输出到的文件夹中执行的。

    需要注意的一点是,在使用IIS Web Deploy进行一键发布时,这并没有真正的帮助,我不确定需要做什么。