【问题标题】: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进行调整

标签: node.js angular


【解决方案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.从而使流程自动化
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 2020-01-15
    • 2017-06-30
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 2016-07-09
    相关资源
    最近更新 更多