嗨,我正在用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应用程序加载时在角度文件夹内呈现src文件夹,但这正在呈现空白屏幕。当我运行ng build
并将其更改为app.use('/', express.static(__dirname + '/angular/dist'));
然后开始工作。
所有教程显示在节点内运行ng build
并在节点内运行有角,但是为什么我可以在nodejs内使用src
文件夹。
答案 0 :(得分:1)
src
文件夹在开发过程中使用。它们是实际的源文件,具有可读取格式的程序。
dist
是在构建时生成的,它将所有src文件,资产和节点模块组合在一起并缩小为一个小包。
因此,在部署中没有必要使用src
已更新:
正如您所说的那样,在进行开发时,精简代码并再次构建整个代码需要花费大量时间。因此,当我们执行ng serve
时,它将仅将文件转换为js,但是不会缩小或发生其他事情。
如果您复制src以进行部署,为什么src将不起作用,如果您使用的是最新的Angular,则src包含.ts文件,并且必须对其进行一些修改才能转换为JS,以便浏览器可以理解。