nodejs中没有'dist'的Angular 2
Posted
技术标签:
【中文标题】nodejs中没有\'dist\'的Angular 2【英文标题】:Angular 2 without 'dist' in nodejsnodejs中没有'dist'的Angular 2 【发布时间】:2017-11-28 09:05:35 【问题描述】:是否可以在 nodejs 中没有给定代码的情况下使用 node js 运行 angular2? 如果我不想在 nodejs 中使用 dist 文件夹怎么办?
app.use('/', express.static('dist'));
app.get('/', function(req, res)
res.sendFile(path.join(__dirname + '/index.html'));
);
【问题讨论】:
dist 文件夹是 typescript 编译为javascript
因为浏览器不理解 typescript。另外能否请您说明删除上述nodejs代码的原因
@Dhyey 因为我每次进行更改时都必须运行ng build
,而我无法通过ng serve
进行调整
【参考方案1】:
提问者的主要问题是他/她不想在每次更改时都浪费宝贵的时间打电话给ng build
。
解决方案是使用ng build --watch
,它会立即构建文件并将它们保存在“dist”目录中,并且每次更改任何文件时,都会立即更新“dist”目录。
【讨论】:
【参考方案2】:IMO,dist 基本上是编译后的角码, 您仍然需要某个地方的角度代码由节点服务器提供服务。 从 express 服务器的角度来看,它是编译代码(dist)还是未编译代码都没有关系。
注意: 编译是指通过前端代码执行的构建任务,诸如缩小、丑化、cdn'ing 等任务。
【讨论】:
但是@shivam,我需要再次运行ng build
,如果我做了一个逗号更改。有什么方法可以在没有 ng build 的情况下运行更改?
不幸的是,没有,因为您使用的是打字稿(从使用 ng2 猜测)。您必须触发构建,将其编译为 js
是的,因为 ngserve 不会将其保存到磁盘上……正如我从文档中看到的那样 github.com/angular/angular-cli/wiki/serve
我有最后一个疑问,如果我将完整的文件夹上传到服务器,那么我将从dist
文件夹中调用所有内容。那么,如果我进行一些更改并再次想要更新我的服务器代码怎么办
是的,您必须更新服务器代码。有几种方法可以做到这一点。 1. 在本地创建新的 dist 文件并将其作为 tarball 推送到您的服务器。这种方法有很多限制,但如果它的某些东西不经常改变,那就很好了。 2. 您可以使用Jenkins 设置部署管道(或 CI 管道)并将未编译的代码推送到 github 或任何其他基于 Web 的 VCS。 Jenkins 从 github 拉取并编译代码,创建 dist.从而使流程自动化以上是关于nodejs中没有'dist'的Angular 2的主要内容,如果未能解决你的问题,请参考以下文章
Angular 2 Universal 中的身份验证,nodejs
如何提供 Angular 2 dist 文件夹 index.html
在源代码管理中保存 Angular Dist 文件夹 [关闭]