2017-02-06 20 views
11

Tôi đang cố gắng thiết lập môi trường của mình vì vậy khi tôi nhấp vào chạy trong Visual Studio 2015, nó sẽ cài đặt mô-đun nút của tôi, và sau đó chạy phía trước end webpack-dev-server.Chạy Webpack-dev-server chạy trong studio trực quan - dự án core .net

tôi thêm

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

để scripts tôi trong tôi project.json

Nếu bạn muốn xem Start Script rằng tôi đang chạy: https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/scripts/start.js

Nó hoạt động, kinda. Nó sẽ khởi động máy chủ, nhưng không mở nó trong trình duyệt, và nó phá vỡ VS đến điểm mà tôi không thể ngừng gỡ lỗi, và không thể đóng VS vì nó gỡ lỗi.

enter image description here

Vậy là có anyway tôi có thể làm công việc này theo cách tôi muốn nó, hoặc nên tôi chỉ nghỉ mát để sử dụng cmd để bắt đầu webpack-dev-server?


Tôi chỉ cố gắng:

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

hy vọng tôi có thể có được VS để mở một dấu nhắc lệnh và chạy kịch bản bắt đầu, nhưng điều đó không làm việc.


Tôi tìm thấy câu trả lời. Sẽ tiếp tục mở để xem liệu có ai có giải pháp tốt hơn không.

Trong Startup.cs của tôi, tôi nói thêm:

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

Dòng đầu tiên chạy lệnh của tôi trong cmd, và lần thứ hai mở trình duyệt mặc định của tôi ở cảng webpack-dev-máy chủ của tôi.


Giải pháp thứ hai có thể hoạt động tùy thuộc vào trường hợp sử dụng.

Tải xuống node tools for VS và tạo dự án Node trống mới trong giải pháp của bạn. Bạn có thể đi đến các thuộc tính của dự án và có một đầu vào được gọi là Script (startup file). Bạn có thể chỉ cho rằng để bắt đầu của bạn lên kịch bản, trong trường hợp của tôi nó đã scripts/start.js

Trả lời

4

Dưới đây là những giải pháp mà tôi đã đưa ra:

Trong Startup.cs của tôi, tôi nói thêm:

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

Dòng đầu tiên chạy lệnh của tôi trong cmd và lệnh thứ hai mở trình duyệt mặc định của tôi tại cổng webpack-dev-server của tôi.


Giải pháp thứ hai có thể hoạt động tùy thuộc vào trường hợp sử dụng.

Tải xuống node tools for VS và tạo dự án Node trống mới trong giải pháp của bạn. Bạn có thể truy cập thuộc tính của dự án và có đầu vào được gọi là Script (startup file). Bạn có thể trỏ đến bắt đầu lên kịch bản của bạn, trong trường hợp của tôi nó đã scripts/start.js

1

Install Command Task runner, mà sẽ cho phép bạn chạy các lệnh trên các sự kiện nhất định.

Trong commands.json tập tin mới, xác định một kịch bản như thế này:

{ 
    "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" ] } 
} 

Bạn cũng có thể loại bỏ các "-vs-binding" lineand tự làm các ràng buộc thông qua Task Runner Explorer UI.

Việc này sẽ thay đổi mã của bạn để khởi chạy máy chủ web một cách rõ ràng mỗi lần.

Tôi nên thêm rằng tôi thấy rằng Visual Studio sẽ không thoát trong khi cửa sổ nhắc lệnh cho máy chủ web vẫn mở. Tôi cho rằng đó là công bằng, nhưng nó bắt gặp tôi ra một vài lần (tôi bắt đầu máy chủ web theo cách này và để nó chạy). Giải pháp dễ dàng là chỉ cần đóng cửa sổ máy chủ web và VS sẽ đóng như bình thường mà không cần nhắc thêm.

3

Cách tiếp cận khác là bắt đầu máy chủ phát triển webpack bằng cách ràng buộc khởi động của nó với liên kết Project Open trong Task Runner Explorer, so với liên kết Sau khi xây dựng. Theo cách này, máy chủ phát triển webpack nó đã chạy trước khi bạn xây dựng Solution bằng Visual Studio.

Cách tiếp cận này có lợi thế là không treo lên trình tự xây dựng VS vì quá trình máy chủ webpack vẫn đang chạy.

tôi sử dụng phần mở rộng VS NPM công tác Runner để làm các ràng buộc và có một lệnh NPM kịch bản, như:

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

Sau đó, tôi gắn kịch bản cho dự án mở ràng buộc

Bạn cũng có thể kết hợp lệnh yarn install của bạn như là một phần của tập lệnh NPM được chạy trên Project Open.

+0

Tôi phát hiện rằng phần mở rộng nhiệm vụ VS NPM Task Runner là Yarn, vì vậy nó sẽ chạy 'cài đặt sợi' thay cho Cài đặt NPM, nếu Sợi được cài đặt trên máy của bạn, do đó bạn không phải kết hợp một cách rõ ràng 'sợi cài đặt' dưới dạng tập lệnh NPM. Có một phần mở rộng của Task Task Runner, nhưng tại thời điểm này, nó chưa được cập nhật cho VS 2017, nhưng tôi thấy NPM Task Runner thực hiện thủ thuật này. –

Các vấn đề liên quan