如何在 Visual Studio 2017 和 msbuild 中相同地设置 gulp 到 运行 而无需更改我的构建脚本?

How can I set up gulp to run identically in Visual Studio 2017 and msbuild without having to change my build scripts?

我正在努力在 Visual Studio 2017 年与 gulp 建立联系。我不确定我哪里出错了,但有几件事让我感到困惑,并且我真的找不到任何有用的在线资源。

我正在使用的构建系统是 CruiseControl.NET,我希望 gulp 可以使用它。

这是我到目前为止所做的:

在任务 运行ner 资源管理器中我收到错误 Failed to load. See output window (Ctl+Alt+O) for more information.

然后如果我执行以下操作:

在任务 运行ner Explorer 中,我收到消息 (No tasks found)

首先,这是在 Visual Studio 2017 年设置 Gulp 的正确方法吗?

我问这个的原因是因为我不确定为什么我需要在命令前加上句点字符(即 .npm 而不是 npm)。

我也不确定 gulp 的安装位置,因为我在路径 C:\Program Files (x86)\Microsoft Visual Studio17\Professional\Web\External\node_modules.

中找不到它

因此我无法真正设置 CruiseControl.NET。

我处理这个问题的方法是首先使用 Web Essentials 2017 扩展。这将安装 Bundler & Minifier 工具,然后将 bundleconfig.json 文件添加到您的项目中。右键单击此文件,转到 Bundler & Minifier 菜单项,您将在其中看到一个选项 Convert To Gulp.

选择转换为 gulp 将创建必要的 gulpfile.js 并安装使用 Gulp 所需的 npm 包。等待所有 npm 包安装完成,然后您可以右键单击 gulpfile.js、select Task Runner Explorer并且您应该准备好设置基于 Gulp 的任务。如果你看到 gulpfile.js failed to load message,npm 包可能仍在安装(检查 VS 2017 状态栏上的进度条)。安装完所有包后,点击 Task Runner Explorer 中的 Refresh 图标,错误应该消失。

可能有一种更手动的方式来添加 Gulp 支持,但我发现这种更自动化的方法可确保所有工具都已连接以正常工作,而且我不会遗漏任何东西。

我从很棒的 Microsoft 文档 站点收集了所有这些信息,特别是关于捆绑和缩小的页面。还有一个 Using Gulp 部分可能会针对您的情况提供更多详细信息。

https://docs.microsoft.com/en-us/aspnet/core/client-side/bundling-and-minification

Microsoft 现在添加了有关如何获取 gulp 运行ning 的文档: https://docs.microsoft.com/en-us/aspnet/core/client-side/using-gulp

确保将 Visual Studio 2017 更新到最新版本,因为它现在随 Node.js、NPM 和 Gulp 一起提供(您不需要安装 Visual Studio 时选择 "Node.js support" 才能正常工作)。

在您的项目文件夹中创建一个 npm 配置文件 (package.json) 并编辑它以引用 gulp:

{
  "version": "1.0.0",
  "name": "example",
  "private": true,
  "devDependencies": {
    "gulp": "3.9.1"
  },
  "scripts": {
    "gulp": "gulp"
  }
}

在项目文件夹中,创建一个 Gulp 配置文件 (gulpfile.js) 来定义自动化过程。

为每个需要 gulp 支持的项目将以下内容添加到 post-build 事件命令行:

cd $(ProjectDir)
call dotnet restore
npm run gulp

要 运行 Visual Studio 2017 年的任务,请打开 Task Runner Explorer(查看 > 其他 Windows > Task Runner Explorer)。

然后在构建服务器上安装 Node.js 并确保将节点路径添加到环境路径变量中,然后当构建服务器构建项目时 gulp 也会 运行 !

我找到了解决方案 here. More information on that part of VS from Mads himself

你必须用你的 Node.js 版本强制 Visual Studio 运行:

前往 Tools > Options Visual Studio 2017

前往 Projects and Solutions > External Web Tools

添加以下路径:C:\Program Files\nodejs