【问题标题】:Angular 7 - Only "dist" folder is rendering on browser but not "src" folder with nodejsAngular 7 - 只有“dist”文件夹在浏览器上呈现,而不是带有 nodejs 的“src”文件夹
【发布时间】:2019-04-13 06:36:34
【问题描述】:

您好,我正在使用 angular7 开始一个 nodejs 应用程序项目。这是我在 nodejs 中的邮件 server.js 文件

var express = require('express'); 
var mysql = require('mysql');
var bodyParser = require('body-parser')
var cookieParser = require('cookie-parser');
var router = express.Router();
var app = express();

app.use(cookieParser());
app.use( bodyParser.json() );       // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({     // to support URL-encoded bodies
    extended: true
}));

app.set('view engine', 'pug');
app.set('views', __dirname + '/app/views');

app.use(express.static(__dirname + '/public'));
app.use('/', express.static(__dirname + '/angular/src'));

require('./app/routes')(router);

app.use(router);



app.listen(2233, function(){
    console.log('app started on 2233');
});

app.use('/', express.static(__dirname + '/angular/src')); 这一行表示我想在 nodejs 应用程序加载时渲染 Angular 文件夹内的 src 文件夹,但这是渲染空白屏幕。当我运行ng build 并将其更改为app.use('/', express.static(__dirname + '/angular/dist')); 然后开始工作。

所有教程都显示运行ng build 并在节点内运行角度,但为什么我可以在 nodejs 内使用src 文件夹。

【问题讨论】:

  • 为什么你需要使用你的src 文件呢?您构建的文件位于dist 文件夹中
  • @wentjun 据我所知(如果我错了,请纠正我)我们使用ng build 来缩小文件并在生产中使用轻量级应用程序。当我们创建新项目时,它会在浏览器上的http://localhost:4200/ 上打开,但它适用于src 文件夹,然后在生产中我们使用ng build 并提供dist 文件夹。我正在使用src 文件夹,因为它在每次小的更改后都很难运行ng build。我将运行 ng build 并将其更改为 dist 在生产中。而且也很少有人好奇为什么它不能在 src 上工作

标签: javascript node.js angular


【解决方案1】:

src 文件夹在开发过程中使用。它们是实际的源文件,其中包含您的程序可读格式。

dist 是在您进行构建时生成的,它会将您所有的 src 文件、资产和您的节点模块组合并压缩到一个小包中。

因此,在您的部署中使用 src 是没有意义的

更新: 正如您所说的那样,当您在开发中时,缩小代码并再次构建整个代码需要大量时间。因此,当我们执行ng serve 时,它只会将文件转换为 js,但不会发生缩小或其他事情。

如果复制 src 进行部署,为什么 src 将不起作用,如果您使用最新的 Angular,src 包含 .ts 文件,并且您必须将其转换为 JS 并进行一些修改,以便浏览器可以理解它。

【讨论】:

  • 惊人的收获。任何解决方案如果没有ng build 怎么办??
  • 您可以使用 gulp 或 grunt 等任务运行器自行构建包。
  • 我正在使用 pm2。那么我可以定义一些东西,以便ng build 在我使用 pm2 reload 时在内部运行吗??
  • 是的,您可以使用任务运行器@Gaurav 轻松做到这一点
  • task runners 与 pm2 reload 无关
猜你喜欢
  • 2023-03-15
  • 2016-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-31
  • 2013-04-08
  • 2019-12-26
相关资源
最近更新 更多