node.js - "long"-paketet bryter `tsc build`
Yarn installerar long som ett beroende för andra moduler. Det installerar "umd"-versionen, som tydligen är en CommonJS-modul.
Jag får följande fel:
node_modules/long/umd/index.d.ts:1:18 - error TS1479: The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("../index.js")' call instead.
import Long from "../index.js";
Uppenbarligen kan jag inte bara uppdatera filen som angivits.
Finns det ett sätt att tvinga TypeScript-kompilatorn att inte använda umd-versionen?
package.json
{
"name": "<project>",
"version": "1.0.0",
"engines": {
"node": "20.x.x"
},
"main": "index.js",
"repository": "<repo>",
"author": "<author>",
"license": "MIT",
"scripts": {
"dev": "nodemon",
"build": "tsc && tsc-alias",
...
},
"devDependencies": {
"nodemon": "^3.0.1",
"ts-node": "^10.9.1",
"tsc-alias": "^1.8.7",
"tsconfig-paths": "^4.2.0",
"typescript": "^5.3.0-dev.20230920"
},
"dependencies": {
...
}
}
tsconfig.json
{
"compilerOptions": {
"target": "ESNext",
"module": "NodeNext",
"lib": ["ESNext", "DOM", "DOM.Iterable"],
"baseUrl": "src",
"outDir": "./build",
"sourceMap": true,
"noImplicitAny": true,
"types": ["./elevenlabs-api.d.ts"],
"paths": {
"@/*": ["./*"],
...
}
},
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}
Jag har försökt installera [email uttryckligen (icke-UMD-version) [email har en umd-undermapp. Baspaketet i node_modules är korrekt, men alla andra paket som beror på det skapar sin egen node_modules-mapp med den felaktiga versionen.
Jag har försökt använda samma versioner av de överordnade beroenden som fungerar. Samma resultat: den brytande long-versionen installeras ändå.