![](/img/trans.png)
[英]How to build to output folder when the typescript files are located in './src'
[英]Typescript build output misses some files
所以我最近将 typescript 添加到我的 ExpressJS 项目中(它对我来说仍然很神奇)。
我正在尝试在 /dist 目录 (.ts -->.js) 中构建应用程序,但它不会生成 swagger.yaml 文件或 sequelize-cli 文件夹。
在 tsconfig.json 中进行一些更改几乎没有任何作用,这对我来说真的很奇怪。
我的项目结构:
- dist/
- api/**
- classes/**
- interfaces/**
- sequelize/**
- server.ts
- src/
- api/**
- classes/**
- interfaces/**
- sequelize/**
- sequelize-cli/**
- server.ts
- swagger.yaml
- .dockerignore
- .env
- .gitignore
- .sequelizerc
- Dockerfile
- package-lock.json
- package.json
- tsconfig.json
* not important subdirectories & files
我的 package.json:
{
"name": "random-name",
"version": "1.0.0",
"description": "",
"main": "src/server.js",
"scripts": {
"prod": "node dist/server.js",
"dev": "npm run build && node dist/server.js",
"build": "tsc"
},
"author": "",
"license": "ISC",
"dependencies": {
"bcrypt": "^5.1.0",
"cookie-parser": "^1.4.6",
"dotenv": "^16.0.3",
"express": "^4.18.2",
"jsonwebtoken": "^8.5.1",
"mysql2": "^2.3.3",
"sequelize": "^6.25.3",
"sequelize-cli": "^6.5.2",
"swagger-ui-express": "^4.5.0",
"yamljs": "^0.3.0"
},
"devDependencies": {
"@types/bcrypt": "^5.0.0",
"@types/cookie-parser": "^1.4.3",
"@types/express": "^4.17.14",
"@types/jsonwebtoken": "^8.5.9",
"@types/node": "^18.11.5",
"@types/swagger-ui-express": "^4.1.3",
"@types/yamljs": "^0.2.31",
"nodemon": "^2.0.20",
"ts-node": "^10.9.1",
"typescript": "^4.8.4"
}
}
我的 tsconfig.json:
{
"compilerOptions": {
"module": "CommonJS",
"moduleResolution": "Node",
"esModuleInterop": true,
"target": "ES6",
"removeComments": true,
"rootDir": "./src",
"outDir": "./dist",
},
"include": [ "src/**/*" ],
"exclude": [ "node_modules" ]
}
我不知道怎么了
TS 编译器只处理 TypeScript 和 JavaScript 文件,您需要某种打包器来处理其他文件类型。 但是有一个不使用捆绑器的解决方案。
在你的package.json
你可以指定一个脚本,它将
dist
文件夹。dist
文件夹中。一个示例脚本是 -
"start": "tsc && copyfiles -u 1 src/sequelize-cli/**/* src/swagger.yaml dist && node dist/server.js"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.