Node.js 作为NodeJS项目的默认值启动Angular应用程序

Node.js 作为NodeJS项目的默认值启动Angular应用程序,node.js,angular,command-line-interface,Node.js,Angular,Command Line Interface,我有一个NodeJS应用程序和一个Angular 6作为前端 该项目看起来像: -> Node Project ---> src ---> Client_App (Anuglar) 要运行应用程序,我需要按照这些命令分别启动服务器和angular,如: -> node start -> cd src/Client_App -> ng serve 我需要用一个命令启动两个应用程序,或者添加要在NodeJS开始时运行的dist文件Angu

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

该项目看起来像:

-> Node Project
   ---> src 
       ---> Client_App (Anuglar)
要运行应用程序,我需要按照这些命令分别启动服务器和angular,如:

-> node start
-> cd src/Client_App
-> ng serve
我需要用一个命令启动两个应用程序,或者添加要在NodeJS开始时运行的dist文件Angular,NodeJS现在正在使用Jade

我对NodeJS还是新手,仍然不知道如何配置它

有人能帮忙吗?谢谢

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

app.get('/', function (req, res, next) {
  res.sendFile(path.join(__dirname + '/app_server/views/ngapp/index.html'));
});
但我收到错误消息,未找到我的.js和.css文件夹:

当您使用CLI
ng build--prod
构建应用程序时,您会得到一个
dist
文件夹:该文件夹包含您的所有应用程序,捆绑到不同的文件中(请随意查看)

要使用它创建.ZIP文件,您需要两件事:

  • dist
    文件夹
  • http服务器
你有第一个,但没有第二个

您所需要的只是一个非常简单的服务器。例如,在NPM上可以做到这一点。通过将其作为开发人员依赖项安装,您可以在
package.json
文件中创建一个命令

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

npm run deploy-locally
甚至更好

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

npm start

如果您不想使用NPM包(或被迫使用NodeJS),只需在JS文件中创建一个基本http服务器,并使用命令行运行它(很抱歉,这方面没有帮助,现在不要进入NodeJS)

使用CLI
ng build--prod
构建应用程序时,您会得到一个
dist
文件夹:该文件夹包含所有应用程序,并捆绑到不同的文件中(请随意查看)

要使用它创建.ZIP文件,您需要两件事:

  • dist
    文件夹
  • http服务器
你有第一个,但没有第二个

您所需要的只是一个非常简单的服务器。例如,在NPM上可以做到这一点。通过将其作为开发人员依赖项安装,您可以在
package.json
文件中创建一个命令

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

npm run deploy-locally
甚至更好

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

npm start

如果您不想使用NPM包(或被迫使用NodeJS),只需在JS文件中创建一个基本http服务器,并使用命令行运行它(很抱歉,这方面没有帮助,现在不要进入NodeJS)

您可以创建一条新路线,并在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进行安装
express
有惊人的方法来处理所有这些

您可以创建一条新路线,并以express.static的形式进入app.route,如下所示

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进行安装
express
拥有处理所有这些问题的惊人方法

您想从何开始?是处于生产模式的服务器还是用于测试应用程序的本地服务器?似乎不清楚,您谈论的是
ng-serve
dist
文件夹,两者完全不同。你的最终目标是什么?嗯,我的最终目标是能够复制我的项目,把它交给某人,然后在他的机器上用一个步骤运行它。这是我大学的要求。我知道这有点奇怪,但他们想要这样。我必须将NodeJ配置为作为启动项目运行Angular。无论是真正的角度项目还是距离文件。一点也不奇怪!这是公司中常见的用例。你考虑过使用Docker吗?不,我应该提供一个在其他机器上工作的.zip文件,还有node_模块文件夹。我通常使用Build Server和DevOps,这就是为什么我对这些东西有点迷茫的原因。好吧。让我很快回答你。你想从什么开始?是处于生产模式的服务器还是用于测试应用程序的本地服务器?似乎不清楚,您谈论的是
ng-serve
dist
文件夹,两者完全不同。你的最终目标是什么?嗯,我的最终目标是能够复制我的项目,把它交给某人,然后在他的机器上用一个步骤运行它。这是我大学的要求。我知道这有点奇怪,但他们想要这样。我必须将NodeJ配置为作为启动项目运行Angular。无论是真正的角度项目还是距离文件。一点也不奇怪!这是公司中常见的用例。你考虑过使用Docker吗?不,我应该提供一个在其他机器上工作的.zip文件,还有node_模块文件夹。我通常使用Build Server和DevOps,这就是为什么我对这些东西有点迷茫的原因。好吧。让我快速回答你。谢谢你的回答,但这并不能解决单一命令行的问题。因为我仍然需要单独启动dist文件,而不是实际的angular应用程序,对吗?不。dist文件夹是角度应用程序。你把压缩文件给某人,他们将其解压缩,然后他们只运行
npm start
,你的应用程序在本地模式下运行。但是他们仍然需要单独运行NodeJS。他们将从我那里得到一个.zip文件夹,其中包含整个项目,包括NodeJS。主管必须解压它,打开命令行,运行“node start”,应用程序应该启动节点和角度视图。这是我的目标。哦!我的错。可能类似于
app.get('/',function(req,res,next){res.sendFile(path.join(u dirname+'/dist/index.html'));}然后:给出dist文件夹中索引文件的路径,你的应用程序将在你的服务器上提供并可访问。我做到了。问题是文件的路径。他正在尝试访问公用文件夹中的文件,但这些文件位于public/aan中。所以,我