我尝试使用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"
我的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__/*"]
}
实际输出:
nest-typescript-starter@1.0.0 prestart:prod {我项目的路径} rimraf dist && npm运行构建
nest-typescript-starter@1.0.0构建 {我项目的路径} tsc -p tsconfig.build.json
nest-typescript-starter@1.0.0 start:prod {我项目的路径} 节点dist / main.js
内部/模块/cjs/loader.js:584 犯错 ^
错误:找不到模块 {我项目的路径} \ dist \ main.js'
答案 0 :(得分:1)
Okeey,我有点笨。答案很简单。在package.json中,您需要将行从"start:prod": "node dist/main.js"
更改为"start:prod": "node dist/src/main.js"
。在tsconfig.json中,您需要将"outDir": "../dist"
更改为"outDir": "./dist"
答案 1 :(得分:0)
你可以添加一个新命令: 在 package.json 中的脚本下:
"start:live": "rimraf dist && nest build && node dist/src/main",
然后你可以运行:
npm run start:live