[英]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.