Heroku 构建错误
- TSError: ⨯ Unable to compile TypeScript:
- src/server.ts(1,38): error TS7016: Could not find a declaration file for module 'express'. '/app/node_modules/express/index.js' implicitly has an 'any' type.
- Try `npm i --save-dev @types/express` if it exists or add a new declaration (.d.ts) file containing `declare module 'express';`
- src/server.ts(10,14): error TS2580: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.
试图弄清楚如何让我的代码达到 Heroku 的要求已经被耽搁了一段时间,最新的错误如上面所示,我不确定我需要更改什么才能使其正常工作。我一直在遵循指南并有一个@types/express
, @types/node
等在我的 package.json 脚本中。然而,它并没有读取它们。不知道从这里去哪里,我们将不胜感激。
tsconfig.json
{
"compilerOptions": {
"target": "es2017",
"module": "commonjs",
"sourceMap": true,
"outDir": "./build",
"rootDir": "./src",
"strict": true,
"noImplicitAny": true,
"moduleResolution": "node",
"baseUrl": "./src",
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
},
"lib": ["es2015"],
"include": ["src/**/*.ts"],
"exclude": ["node_modules", "src/**/*.test.ts"]
}
Procfile
web:ts-node/src/server.ts
src/服务器.ts
import express, { Application } from 'express';
import { routes } from './routes';
// Boot express
export const app: Application = express();
// Application routing
routes(app);
const port = process.env.PORT || 5000;
// Start server
app.listen(port, () => console.log(`Server is listening on port ${port}!`));
包.json
{
"name": "my-app",
"version": "1.0.0",
"main": "src/server.ts",
"type": "commonjs",
"scripts": {
"start": "ts-node src/server.ts",
"dev": "nodemon -x ts-node src/server.ts",
"build": "tsc",
"test": "jest --coverage"
},
"keywords": [],
"author": "",
"license": "ISC",
"husky": {
"hooks": {
"pre-commit": "pretty-quick --staged"
}
},
"devDependencies": {
"@types/cors": "^2.8.12",
"@types/express": "^4.17.13",
"@types/node": "^16.7.6",
"@types/jest": "^26.0.24",
"@types/supertest": "^2.0.11",
"@typescript-eslint/eslint-plugin": "^4.29.0",
"@typescript-eslint/parser": "^4.29.0",
"eslint": "^7.32.0",
"eslint-config-standard": "^16.0.3",
"eslint-plugin-import": "^2.23.4",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^5.1.0",
"husky": "^7.0.1",
"jest": "^27.0.6",
"nodemon": "^2.0.12",
"prettier": "^2.3.2",
"pretty-quick": "^3.1.1",
"supertest": "^6.1.4",
"ts-jest": "^27.0.4"
},
"dependencies": {
"axios": "^0.21.1",
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"express": "^4.17.1",
"ts-node": "^10.1.0",
"typescript": "^4.3.5"
},
"description": ""
}