У меня есть сервер 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)
Я прочитал этот поток несколько раз, но я не могу понять, что на самом деле вызывает эту проблему, так как нет Независимо от того, как или как часто я это исправляю, он всегда возвращается, когда обновляются мои файлы yarn.lock.
Какие версии каких зависимостей мне нужно установить, чтобы использовать mysql2 с машинописью, и как я могу их предотвратить быть обновленным и ломать вещи снова? Моя посылка. 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"
}
}
Любая помощь будет признательна.