2016-06-30 25 views
3

我想用express來代替angular-cli中的內置服務器,以便我可以編輯快速javascript以添加需要在服務器上執行的小部件。如何做到這一點?如何用快遞替換angular-cli服務器?

+0

我聽說angular-cli在ember-cli中使用了很多。因此,搜索'ember-cli用express替換服務器',找到[this](http://stackoverflow.com/questions/24336040/how-to-use-a-custom-express-server-with-ember-cli) 。然而,angular-cli不實現'api-stub'。 – user3567174

+0

您是否找到解決方案? – echonax

回答

1

我將一個app.js文件添加到由angular-cli生成的src文件夾中,並編寫了一個簡單的服務器。當你運行ng build的時候,你添加到src和public目錄的文件將被編譯並添加到dist目錄中。所以,你應該渲染/親戚在蒸餾水發送到index.html文件:

app.get('/*', function (req, res) { 
    res.sendFile(path.join(__dirname,'index.html')) 
}); 

若要從終端Express服務器:$ node dist/app.js

我得到一些編譯器錯誤,當我嘗試拼圖應用程序。 js文件:src/server/app.js,但所有其他服務器文件在嵌套時都可以正常工作,例如模型和路由。

0

最好的解決方案是用Ember CLI所期望的(並且因此在Angular CLI包中實現)替換它。我用我的代理B/C我從來沒有得到-proxy選項正常工作。

首先,確保你有快遞安裝:

$ npm install express --save-dev 

專門在/server/index.js

./server/index.js創建Express服務器 - >

var express = require('express'); 
module.exports = express(); 

就這麼簡單。 'ng serve'處理靜態文件,因此不需要添加自己的文件。如果你想添加一些像你的反向代理,只是構建並在出口前添加到應用程序:

var express = require('express'); 
var httpProxy = require('http-proxy'); 
var app = express(); 
app.all('/api/*', function(req, res) { 
    var proxy = httpProxy.createServer('http://localhost:8000'); 
    req.url = req.url.replace(/^\/api/i, ''); 
    proxy.web(req, res); 
}); 
module.exports = app; 

注意灰燼CLI不支持代理,雖然我已經在使用它沒有多少運氣我需要的。