我有一个用打字稿编写的NodeJS / Express服务器,它连接到mysql数据库。我的依存关系包括"mysql2": "1.7.0"
和"@types/mysql2": "github:types/mysql2"
。每当我出于某种原因运行yarn add
或yarn upgrade
时,似乎都在更新mysql2或其类型的依赖项。尝试提交代码运行tsc --noEmit
,它会产生以下警告:
node_modules/@types/mysql/index.d.ts:2:1 - error TS2440: Import declaration conflicts with local declaration of 'Connection'.
2 import Connection = require('./lib/Connection');
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Same for PoolConnection, Pool, PoolCluster, and Query //
Found 5 errors.
husky > pre-commit hook failed (add --no-verify to bypass)
我已经读过this thread了几次,但是我无法弄清楚到底是什么引起了这个问题,因为无论我如何修复它或修复它的频率,它似乎总是在我yarn.lock文件更新时恢复。 / p>
我需要安装哪些版本的依赖项才能将mysql2与typescript一起使用,如何防止它们被更新并再次破坏?我的package.json看起来像这样(由于我在一家公司工作,所以删除了一些零件):
{
"scripts": {
"build": "tsc",
"clean": "rimraf dist",
"local": "nodemon",
"format": "prettier \"{src,tests}/**/*.{ts,js}\" --write",
"lint": "tslint --project tsconfig.json --fix",
"typecheck": "tsc --noEmit",
"test": "jest",
},
"devDependencies": {
"@google-cloud/datastore": "^5.0.4",
"@types/body-parser": "^1.17.1",
"@types/cors": "^2.8.6",
"@types/dotenv": "^6.1.1",
"@types/express": "^4.17.1",
"@types/express-session": "^1.15.14",
"@types/faker": "4.1.0",
"@types/jest": "^24.0.18",
"@types/luxon": "^1.21.0",
"@types/mysql2": "github:types/mysql2",
"@types/passport": "^1.0.1",
"@types/passport-jwt": "^3.0.2",
"@types/request-promise": "^4.1.45",
"@types/supertest": "^2.0.8",
"faker": "4.1.0",
"husky": "^3.1.0",
"jest": "^24.9.0",
"lint-staged": "^9.4.3",
"prettier": "^1.19.1",
"rimraf": "^3.0.0",
"supertest": "^4.0.2",
"ts-jest": "^24.1.0",
"tslint": "^5.20.1",
"tslint-config-prettier": "^1.18.0",
"typescript": "^3.7.2"
},
"dependencies": {
"aws-sdk": "^2.585.0",
"body-parser": "^1.19.0",
"cors": "^2.8.5",
"dotenv": "^8.1.0",
"express": "^4.17.1",
"express-jwt": "^5.3.1",
"express-session": "^1.16.2",
"express-validator": "^6.2.0",
"hubspot": "^2.3.5",
"jsonwebtoken": "^8.5.1",
"jwks-rsa": "^1.6.0",
"luxon": "^1.21.3",
"mysql2": "1.7.0",
"nodemon": "^1.18.9",
"passport": "^0.4.0",
"passport-jwt": "^4.0.0",
"request": "^2.88.0",
"request-promise": "^4.2.5",
"request-promise-native": "^1.0.8",
"selfsigned": "^1.10.7",
"ts-node": "^8.4.1"
}
}
任何帮助将不胜感激。