繁体   English   中英

Typescript 构建 output 遗漏了一些文件

[英]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你可以指定一个脚本,它将

  1. 运行 TS 编译器以使用编译后的代码创建一个dist文件夹。
  2. 将您需要的任何额外内容复制到dist文件夹中。
  3. 运行你的代码。

一个示例脚本是 -

"start": "tsc && copyfiles -u 1 src/sequelize-cli/**/* src/swagger.yaml dist && node dist/server.js"

暂无
暂无

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

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