将Angular应用程序作为NodeJS项目的默认启动

时间:2018-12-18 12:52:54

标签: node.js angular command-line-interface

我有一个NodeJS应用程序和一个Angular 6作为前端。

该项目如下:

-> Node Project
   ---> src 
       ---> Client_App (Anuglar)

要运行该应用程序,我需要遵循以下命令并分别启动服务器和angular,例如:

-> node start
-> cd src/Client_App
-> ng serve

我需要使用一个命令来启动两个应用程序,或者添加我的Angular的dist文件,以便在我现在使用Jade的NodeJS的开头运行。

我仍然不熟悉NodeJS,仍然不知道如何配置它。

有人可以帮忙吗?谢谢

已编辑:

我现在尝试将dist文件夹添加到我的views文件夹并在app.js中运行

app.get('/', function (req, res, next) {
  res.sendFile(path.join(__dirname + '/app_server/views/ngapp/index.html'));
});

但是我收到错误消息,找不到我的.js和.css文件夹: enter image description here

2 个答案:

答案 0 :(得分:1)

使用CLI for构建应用程序时,会得到一个ng build --prod文件夹:此文件夹包含所有应用程序,并捆绑在不同的文件中(可以看看他们)。

要以此创建一个.ZIP文件,您需要做两件事:

  • dist文件夹
  • http服务器

您有第一个,但没有第二个。

您需要的只是一台非常简单的服务器。例如,NPM上的http-server可以做到。通过将其安装为开发依赖项,您可以在dist文件

中创建命令
package.json

现在用

运行它
"deploy-locally": "http-server ./dist"

甚至更好,

npm run deploy-locally

并运行

"start": "http-server ./dist"

如果您不想使用NPM软件包(或被迫使用NodeJS),只需在JS文件中创建一个基本的http服务器,然后使用命令行运行它(对不起,对此没有帮助,不是现在进入nodeJS)。

答案 1 :(得分:0)

您可以创建一个新路由,并将app.route传递为express.static,如下所示,

var express = require('express');

var path = require('path');
var bodyParser = require('body-parser');
var app = express();
app.use(express.static(path.join(__dirname, 'dist')));

通过运行此命令,确保您已经安装了angular应用程序的版本,

ng build --prod --build-optimizer

在这种情况下,您需要快速安装。 express具有处理所有这些问题的惊人方法