npm run build > 不在 NestJs 项目中创建 dist 文件夹

Tan*_*ova 3 json nestjs

我试图用npm run start:prod命令开始我的项目,但得到了

Error: Cannot find module {path to my project}\dist\main.js'.

我试图将项目中所有文件的路径从 src/myController 重命名为 ../myController 。

我的 package.json(脚本)

"scripts": {
    "build": "tsc -p tsconfig.build.json",
    "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
    "start": "ts-node -r tsconfig-paths/register src/main.ts",
    "start:dev": "concurrently \"wait-on dist/main.js && nodemon\" \"tsc -w -p tsconfig.json\" ",
    "start:debug": "nodemon --config nodemon-debug.json",
    "prestart:prod": "rimraf dist && npm run build",
    "start:prod": "node dist/main.js"
Run Code Online (Sandbox Code Playgroud)

我的 tsconfig.json

{
  "compilerOptions": {
    "module": "commonjs",
    "declaration": true,
    "noImplicitAny": false,
    "removeComments": true,
    "allowSyntheticDefaultImports": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es6",
    "sourceMap": true,
    "rootDir": ".",
    "outDir": "../dist",
    "baseUrl": "./src"
  },
  "include": [ "./src/**/*.ts", ],
  "exclude": ["node_modules", "dist", "src/**/*.spec.ts", "src/**/__test__/*"]
}
Run Code Online (Sandbox Code Playgroud)

实际输出:

nest-typescript-starter@1.0.0 prestart:prod {path to my project} rimraf dist && npm run build

nest-typescript-starter@1.0.0 build {path to my project} tsc -p tsconfig.build.json

nest-typescript-starter@1.0.0 start:prod {path to my project} node dist/main.js

internal/modules/cjs/loader.js:584 抛出错误;^

错误:找不到模块 {path to my project}\dist\main.js'

Tan*_*ova 12

Okeey,我有点笨。答案很简单。在 package.json 中,您需要将行从 更改"start:prod": "node dist/main.js""start:prod": "node dist/src/main.js"。在 tsconfig.json 中,您需要更改"outDir": "../dist""outDir": "./dist"