Запуск 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 закроется, как обычно, без дополнительных подсказок.