2016-02-21 19 views
6

Tôi đang sử dụng webpack-dev-server cho một ứng dụng angularjs, tôi bắt đầu nó từ một nhiệm vụ trong package.json như thế này:webpack-dev-server với backend api

"scripts": { 
    "start-api": "node api/server.js", 
    "dev": "webpack-dev-server --env dev --history-api-fallback --inline --progress --port 5000", 
    "start": "npm run dev" 
    }, 

Tôi có một máy chủ backend api sử dụng koa và đang chạy trên cùng một cổng:

const koa = require('koa'); 

app.listen(5000); 

module.exports.app; 

Khi máy chủ koa được khởi động, nó chặn mọi yêu cầu và tôi không thể duyệt đến ứng dụng trình duyệt góc.

Tôi có nên phục vụ mọi thứ từ koa hoặc có cách nào để hai người cùng làm việc với nhau không?

Trả lời

8

Có, bạn có thể sử dụng webpack-dev-server với API phụ trợ của riêng bạn. Có hai cách để thực hiện việc này:

Trước tiên, bạn có thể định cấu hình máy chủ dev để sử dụng proxy. Đây là giải pháp tôi sử dụng và nó hoạt động tốt cho tôi. cấu hình của tôi trông giống như sau:

proxy: { 
    "/api/*": { 
    target: "http://localhost:8080" 
    } 
} 

cấu hình này đảm bảo rằng tất cả các yêu cầu bắt đầu với "/ api" được gửi đến máy chủ backend API (chạy trên localhost: 8080 trong trường hợp này), chứ không phải là dev-server . Tùy chọn, nếu bạn cần, bạn có thể bỏ qua proxy với một chức năng, như vậy:

proxy: { 
    "/api/*": { 
    target: "http://localhost:8080", 
    bypass(req, res) { 
     return (/* some condition */) ? '/index.html' : false; 
    } 
    } 
} 

Nhưng tôi chưa bao giờ cần thiết để sử dụng này, kể từ khi "/ api/*" Điều quan trọng là tất cả những gì cần phải đảm bảo mỗi yêu cầu được gửi đến máy chủ phù hợp.

Quan trọng, bạn nên có hai máy chủ chạy trên các cổng khác nhau. Tôi thường sử dụng 8080 cho phụ trợ của tôi và 9090 cho máy chủ dev.

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