node-google-spreadsheet icon indicating copy to clipboard operation
node-google-spreadsheet copied to clipboard

Reference error - Cannot find module 'google-auth-library/build/src/auth/oauth2client'

Open michael-rivera-florencehc-com opened this issue 1 year ago • 2 comments

Still have the same issue documented here - https://github.com/theoephraim/node-google-spreadsheet/issues/654

When using the following package.json

"dependencies": { "@aws-sdk/client-iam": "^3.414.0", "@aws-sdk/client-sqs": "^3.414.0", "@aws-sdk/client-ssm": "^3.414.0", "@aws-sdk/types": "^3.413.0", "@florencehealthcare/fhc-api": "^2.0.2", "@florencehealthcare/florence-api": "^0.0.10", "axios": "^1.5.0", "csv": "^6.3.3", "dotenv": "^16.3.1", "google-auth-library": "^8.8.0", "google-spreadsheet": "^4.1.0", "json2csv": "^5.0.7", "mongodb": "^6.1.0", "p-map": "^6.0.0" }, "devDependencies": { "@types/google-spreadsheet": "^3.3.2", "@types/lodash": "^4.14.198", "@types/node": "^20.6.3", "@types/p-map": "^2.0.0", "typescript": "^5.2.2" }

Then running tsc, the following error is achieved.

`node_modules/google-spreadsheet/dist/index.d.ts:5:25 - error TS2307: Cannot find module 'google-auth-library/build/src/auth/oauth2client' or its corresponding type declarations.

5 import { Headers } from 'google-auth-library/build/src/auth/oauth2client';


Found 1 error in node_modules/google-spreadsheet/dist/index.d.ts:5`

I have the following tsconfig.json file

{ "compilerOptions": { "lib": ["es2020"], "module": "node16", "esModuleInterop": true, "target": "ES2020", "moduleResolution": "node16", "resolveJsonModule": true, "sourceMap": true, "checkJs": false, "outDir": "dist", "types": ["node"] }, "include": ["./**/*.ts"], "exclude": ["node_modules", "dist"] }

For the file referenced, if I change line 5 from this
import { Headers } from 'google-auth-library/build/src/auth/oauth2client';
to this
import { Headers } from 'google-auth-library/build/src/auth/oauth2client.js';

It works



Updating the latest version did not help. Still the same error. Downgrading to 8.8.0 has the same effect

ah the joy of dealing with typescript and file paths... This is not really an issue with this module so much as an incompatibility with your build/config setup. Although there are likely ways to make the built code a bit more robust... Particularly migrating this project's build set up to tsup should help as it will spit out a single dist file. But not sure when I will get to that! If I find some time, I may be able to try to recreate this setup and figure out the resolution. I suspect it involves changing moduleResolution setting in your tsconfig?

theoephraim avatar Jan 18 '24 21:01 theoephraim

It depends on the compilation settings. Try downgrading the JS version for the build.

Another way - if you sure - just add "skipLibCheck": true to compilerOptions

oshliaer avatar Mar 27 '24 06:03 oshliaer