2017-02-06 109 views
11

我想設置我的環境,因此當我單擊Visual Studio 2015中的運行時,它將安裝我的節點模塊,結束webpack-dev-server。在Visual Studio中運行Webpack-dev-server - .net core project

我在project.json

添加

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

scripts如果你想看到的啓動腳本我快: https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/scripts/start.js

它作品,有點。它將啓動服務器,但不會在瀏覽器中打開它,並且它會將VS打斷,直到無法停止調試,並且無法關閉VS,因爲它正在進行調試。

enter image description here

那麼,有沒有反正我可以做這個工作,我希望它的方式,或者我應該只是求助於使用CMD開始的WebPack-dev的服務器?


我只是想:

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

希望我能得到VS打開命令提示符,運行啓動腳本,但沒有奏效。


我找到了答案。打算繼續查看是否有人有更好的解決方案。

在我Startup.cs我說:

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

運行我的cmd命令的第一行,第二個在我的WebPack-DEV-服務器的端口打開我的默認瀏覽器。


第二個解決方案可能會根據用例工作。

下載node tools for VS並在您的解決方案中創建一個新的空Node項目。您可以轉到項目的屬性,並且有一個名爲Script (startup file)的輸入。您可以點那個你啓動了腳本,在我的案例中是scripts/start.js

回答

4

下面是我想出瞭解決方案:

在我Startup.cs我說:

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

第一行在cmd中運行我的命令,第二行在我的webpack-dev-server的端口打開我的默認瀏覽器 。


可以根據使用情況下工作的第二溶液。

下載node tools for VS並在您的解決方案中創建一個新的空節點 項目。你可以去項目的屬性和 有一個名爲Script (startup file)的輸入。你可以指出,要 您啓動了腳本,在我的案例中是scripts/start.js

1

安裝Command Task runner,這將讓你對某些事件的運行命令。

在新commands.json文件中,定義的腳本是這樣的:

{ 
    "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" lineand做手工通過任務運行資源管理器用戶界面綁定。

這會改變您的代碼,以便每次顯式啓動Web服務器。

我應該補充一點,我發現當Web服務器的命令提示窗口仍然打開時,Visual Studio不會退出。我認爲這很公平,但是它讓我感到很困惑(我以這種方式啓動Web服務器並讓它運行)。簡單的解決方案就是關閉Web服務器窗口,VS會正常關閉而不會進一步提示。

3

另一種方法是啓動webpack開發服務器,將其啓動綁定到Task Runner Explorer中的Project Open binding與After Build綁定之間。以這種方式,在使用Visual Studio構建解決方案之前,它已經運行的webpack開發服務器。

由於webpack服務器進程仍在運行,此方法的優點是不會掛起VS構建序列。

我使用VS NPM任務運行的擴展做結合,並有NPM腳本命令,如:

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

然後我綁定腳本到項目開放結合

您也可以納入您的yarn install命令作爲Project Open上運行的NPM腳本的一部分。

+0

我發現VS NPM Task Runner擴展是紗線感知的,所以如果紗線安裝在您的機器上,它將運行「紗線安裝」來代替NPM安裝,因此您不必顯式合併紗線安裝'作爲NPM腳本。有一個Yarn Task Runner擴展,但是目前它還沒有針對VS 2017進行更新,但是我發現NPM Task Runner可以解決這個問題。 –

相關問題