Запуск Webpack-dev-сервера для запуска в визуальных студиях -.net core project

Я пытаюсь настроить свою среду, поэтому, когда я нажимаю кнопку "Запуск в Visual Studio 2015", он будет устанавливать мои модули node, а затем запустить интерфейс webpack-dev-сервера.

Я добавил

"precompile": [ "yarn install", "yarn run start" ]

к моему scripts в моем project.json

Если вы хотите увидеть запуск Script, который я запускаю: https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/scripts/start.js

Это работает, любопытно. Он запустит сервер, но не откроет его в браузере, и он вроде бы разбивает VS до такой степени, что я не могу остановить отладку и не могу закрыть VS, потому что он отлаживает.

введите описание изображения здесь

Так или иначе, я могу сделать эту работу так, как я ее хочу, или мне просто прибегнуть к использованию cmd для запуска webpack-dev-сервера?


Я только что попробовал:

"precompile": [ "yarn install", "start cmd /k yarn run start" ]

надеюсь, что я смогу заставить VS открыть командную строку и запустить start script, но это не сработало.


Я нашел ответ. Продолжая держать это открытым, чтобы увидеть, есть ли у кого-то лучшее решение.

В моем Startup.cs я добавил:

Process.Start("CMD.exe", "/K yarn run start");
Process.Start("cmd", "/C start http://localhost:3000");

Первая строка, выполняющая мою команду в cmd, а вторая открывает мой браузер по умолчанию в порту моего webpack-dev-сервера.


Второе решение, которое может работать в зависимости от варианта использования.

Загрузите node инструменты для VS и создайте новый пустой проект node в вашем решении. Вы можете перейти к свойствам проекта, а там введите Script (startup file). Вы можете указать, что при запуске script, в моем случае это было scripts/start.js

Ответ 1

Вот решения, которые я придумал:

В моем Startup.cs я добавил:

Process.Start("CMD.exe", "/K yarn run start");
Process.Start("cmd", "/C start http://localhost:3000");

Первая строка, выполняющая мою команду в cmd, а вторая - открытие моей браузера по умолчанию в порту моего webpack-dev-сервера.


Второе решение, которое может работать в зависимости от варианта использования.

Загрузите node инструменты для VS и создайте новый пустой Nodeпроект в вашем решении. Вы можете перейти к свойствам проекта и есть вход, называемый Script (startup file). Вы можете указать, что ваш запуск script, в моем случае это было scripts/start.js

Ответ 2

Другой подход заключается в том, чтобы запустить сервер разработки webpack, связывая его запуск с привязкой Project Open в Проводнике запуска задач по сравнению с привязкой After Build. Таким образом, сервер разработки webpack уже запущен до того, как вы построите решение с помощью Visual Studio.

Преимущество такого подхода заключается в том, чтобы не повесить последовательность сборки VS, поскольку процесс сервера webpack все еще работает.

Я использую расширение Application Runner VS NPM для выполнения привязки и имеет команду NPM script, как:

"watch": "webpack-dev-server --hot --inline"

Затем я привязываю script к привязке к проекту Open

Вы также можете включить команду yarn install как часть NPM script, которая запускается в Project Open.

Ответ 3

Установите Командная строка, которая позволит вам запускать команды для определенных событий.

В новом commands.json файле определите script следующим образом:

{
  "commands": {
    "InstallPackages": {
      "fileName": "cmd.exe",
      "workingDirectory": ".",
      "arguments": "/K yarn run start"
    },
    "OpenSite": {
      "fileName": "cmd.exe",
      "workingDirectory": ".",
      "arguments": "/C start http://localhost:3000"
    }
  },
  "-vs-binding": { "AfterBuild": [ "InstallPackages", "OpenSite" ] }
}

Вы также можете удалить строку "-vs-binding" и вручную выполнить привязки через пользовательский интерфейс проводника задач.

Это приводит к изменению вашего кода, чтобы явным образом запускать веб-сервер каждый раз.

Я должен добавить, что я обнаружил, что Visual Studio не выйдет, пока окно командной строки для веб-сервера все еще открыто. Я полагаю, что это справедливо, но это меня уловило несколько раз (я запускаю веб-сервер таким образом и оставляю его работающим). Простое решение - просто закрыть окно веб-сервера, а VS закроется, как обычно, без дополнительных подсказок.