2016-06-30 22 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不支持代理,虽然我已经在使用它没有多少运气我需要的。