Home > Net >  Conflict between baseUrl and node_modules when importing
Conflict between baseUrl and node_modules when importing

Time:03-12

I have a TS project with the following configuration:

tsconfig.json (partial)

{
  "compilerOptions": {
    "module": "commonjs",
    "baseUrl": "src",
    "esModuleInterop": true,
  },
  "include": [
    "src"
  ]
}

I have a dependency on the stripe NPM package:

{
  // ...
  "dependencies": {
    "stripe": "^8.45.0",
  }
}

Then I have the following files:

src/routes/payments/index.ts
src/stripe/index.ts

I am having some trouble with imports in src/routes/payments/index.ts. I want to import the stripe library, not my own code.

This works:

// Uses me the 'Stripe' constructor which is the default export from the package
const stripe = require('stripe')('KEY');

This does not work:

import Stripe from 'stripe';
const stripe = new Stripe('KEY');

I get the following error:

Module '"PROJECT/src/stripe/index"' has no default export.

How do I disambiguate and tell TS I want to use stripe from node_modules?

CodePudding user response:

Can you try to update the tsconfig.json file like this:

{
 "compilerOptions": {
    "module": "commonjs",
    "esModuleInterop": true,
    "baseUrl": ".",
    "paths": {
      "*": [
        "node_modules/*",
        "src/*"
      ]
    }
  }
}
  • Related