生产服务器上的node.js

我在angular2中编写了一个网站,并在AWS服务器上部署dist文件夹(使用webpack进行编译之后)。 网站工作得很好。 现在我想知道为什么? 因为我没有在服务器上安装node.js ,我也没有部署node_modules文件夹,而不是如何使网站工作得很好。 在我的VS代码中,我必须使用npm下载软件包,但在服务器上不存在软件包。 好心解释。 这听起来可能是一个奇怪的问题,但我真的很困惑或缺less一些基本知识。

实际上,当你通过运行一个类似于npm的命令来创build分发文件夹的时候,运行build:prod,你所有的代码,包括所需的包和库,都被压缩成最终部署到服务器的缩小文件。 这就是所有的node_modules如何仍然是您的代码在dist文件夹中的一部分。

Angular不会在服务器上运行,而是在客户端上运行。

服务器只是将文件发送到客户端,所以他们可以运行。

所以你真的不需要在服务器上安装任何东西。 它只是在那里交付的文件。

编辑:我想这是值得一提的,有一些tanspile /编译/包的步骤,可以发生在服务器上,使客户端JavaScript的分发包readable

下面是运行npm run build之后创build的文件的完整细目:prod:

  1. dist / main。[hash] .bundle.js将您的应用程序捆绑在一起。
  2. dist / vendor。[hash] .bundle.js捆绑您的依赖关系(@angular,RxJS …)
  3. dist / polyfill。[hash] .bundle.js将polyfill依赖项(@angular,RxJS …)捆绑在一起。
  4. dist / index.html您的应用程序的入口点。
  5. dist / inline。[hash] .bundle.js webpack loader
  6. dist / style。[hash] .bundle.css样式定义
  7. 从Angular CLI资产configuration复制的dist / assetsresources。