繁体   English   中英

在生产中启动nodejs服务器的问题

[英]Problem with starting nodejs server in production

好吧,目前我在将 typescript 应用程序转换为 js 后启动时遇到问题。

我的配置文件:

{
  "compilerOptions": {
    "module": "NodeNext",
    "moduleResolution": "NodeNext",
    "baseUrl": "src",
    "target": "ESNext",
    "outDir": "build",
    "strict": true,
    "removeComments": true,
    "resolveJsonModule": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "allowSyntheticDefaultImports": true,
    "noImplicitAny": false,
    "esModuleInterop": true
  },
  "include": ["src/**/*.ts"],
  "exclude": ["node_modules", "build", ".idea"],
  "ts-node": {
    "require": ["tsconfig-paths/register"]
  }
}

我启动开发服务器: ts-node src/index.ts 但是当我尝试将 ts 编译为 js 并使用tsc && node build/index.js命令运行它时,出现以下错误Error: Cannot find module 'some-module-with-absolute-path'

谷歌告诉我,原因可能是绝对路径和 tsc 无法转换它们。 所以我尝试tsc && ts-node build/index.js并且成功了!

在生产中使用这样的 ts-node 是否有任何缺点(性能或其他)以及如何以正确的方式运行 prod build? 谢谢。

我个人认为在产品中运行 ts-node 没有任何问题。 但是我会说绝对路径有些混乱。 我会尽快戒掉这个习惯,因为与他人合作会立即打破你所有的进口。 您可能将您的项目安装在/User/Documents/TheProject而其他人安装在/User/Projects/TheProject 现在所有的进口都必须改变。 这就是为什么 10 次中有 10 次如果您要导入任何您没有安装的东西 npm 您应该使用相对导入。 基本上假装您不知道项目在系统上的位置。 您只能依赖项目的根和您在其中开发的层次结构。

暂无
暂无

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

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