繁体   English   中英

部署节点应用程序

[英]Deploying Node Application

我正在使用 NestJS 和 IIS,我已经在IISNode的帮助下通过 IIS 在服务器上部署了我的dist文件夹,但是当我运行它时,它给了我一个错误'module not found @nestjs/core'等,所以我安装了服务器上的整个package.json文件(node_module),之后它开始正常工作。 但我有一个问题。 我们是否必须在 250MB 以上的服务器上保留node_modules文件夹? 我们是否有任何其他替代方案可以让 dist 包含node_modules的所有必需代码,就像 Angular 应用程序一样?

这与 NestJS 无关,但与 NodeJS 本身有关。 一个典型的package.json文件如下所示:

{
  "name": "nest-typescript-starter",
  "version": "1.0.0",
  "description": "Nest TypeScript starter repository",
  "license": "MIT",
  "scripts": {
    // ...
  },
  "dependencies": {
    "@nestjs/common": "8.2.3",
    // ...
  },
  "devDependencies": {
    "@nestjs/cli": "8.1.7",
    // ...
  }
}

dependencies项下的所有内容在运行时都是必需的,因为它们正在被您的应用程序使用。 出于各种原因,仅在开发期间才需要devDependencies下的任何内容。

具有类型模块、测试工具等之类的devDependencies是很常见的。

在安装新的依赖项时,您有两个选择:

# Option 1
npm install <dependency name>

# Option 2
npm install --save-dev <dependency name>

如果您提供--save-dev标志,您将在devDependencies下安装该依赖项。

整理好package.json文件后,将devDependenciesdependencies项分开,您可以正确部署应用程序。 在部署过程中,您可以使用以下命令代替运行npm install

npm install --omit=dev

通过这样做,您只需将运行时依赖项安装到您的node_modules

最后,您可以将该node_modules复制到您的容器(或您用于部署的任何内容)并发布应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM