Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TypeScript issue: File '/home/nmurgor/git/bitgesell-node-monitor/node_modules/jest-extended/types/index.d.ts' is not a module. #602

Open
naftalimurgor opened this issue May 10, 2023 · 2 comments

Comments

@naftalimurgor
Copy link

Bug

  • package version: 3.2.4
  • node version: 10.0.0
  • npm (or yarn) version: yarn 1.22.19
  • TypeScript: 4.0.2
    Relevant code or config:
  • tsconfing.json file looks like this:
    `
{
  "compilerOptions": {
    "incremental": true,
    "target": "es2017",
    "outDir": "build/main",
    "rootDir": "src",
    "moduleResolution": "node",
    "module": "commonjs",
    "declaration": true,
    "inlineSourceMap": true,
    "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */,
    "resolveJsonModule": true /* Include modules imported with .json extension. */,

    // "strict": true /* Enable all strict type-checking options. */,

    /* Strict Type-Checking Options */
    // "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */,
    // "strictNullChecks": true /* Enable strict null checks. */,
    // "strictFunctionTypes": true /* Enable strict checking of function types. */,
    // "strictPropertyInitialization": true /* Enable strict checking of property initialization in classes. */,
    // "noImplicitThis": true /* Raise error on 'this' expressions with an implied 'any' type. */,
    // "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */,

    /* Additional Checks */
    "noUnusedLocals": true /* Report errors on unused locals. */,
    "noUnusedParameters": true /* Report errors on unused parameters. */,
    "noImplicitReturns": true /* Report error when not all code paths in function return a value. */,
    "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */,

    /* Debugging Options */
    "traceResolution": false /* Report module resolution log messages. */,
    "listEmittedFiles": false /* Print names of generated files part of the compilation. */,
    "listFiles": false /* Print names of files part of the compilation. */,
    "pretty": true /* Stylize errors and messages using color and context. */,

    /* Experimental Options */
    // "experimentalDecorators": true /* Enables experimental support for ES7 decorators. */,
    // "emitDecoratorMetadata": true /* Enables experimental support for emitting type metadata for decorators. */,

    "lib": ["es2017"],
    "types": ["node", "jest", "jest-extended"],
    "typeRoots": ["node_modules/@types", "src/types"]
  },
  "include": ["src/**/*.ts"],
  "exclude": ["node_modules/**"],
  "compileOnSave": false
}

I get this warning when I use this package in a TypeScript project I am working on:

File '/home/nmurgor/git/jest-playground/node_modules/jest-extended/types/index.d.ts' is not a module.

What you did:

  • Installed and setup jest
  • Installed jest-extended
  • added jest-extended to my test as follows:
import * as matchers from 'jest-extended';

expect.extend(matchers);

What happened (please provide anything you think will help):

Description:

Possible solution:
The possible solution would be looking into types/index.d.ts and fixing the "non-module" warning by adding the appropriate exports

@erunion
Copy link

erunion commented Aug 17, 2023

Seeing this as well with a simpler TS config.

File '/Users/erunion/code/node_modules/jest-extended/types/index.d.ts' is not a module.ts(2306)

import { toContainKey } from 'jest-extended';

expect.extend({ toContainKey });

__tests__/tsconfig.json:

{
  "extends": "../../tsconfig.base.json",
  "compilerOptions": {
    "baseUrl": ".",
    "composite": true,
    "outDir": "./dist",
    "strict": true,
  },
  "include": ["**/*.ts", "**/*.js", "**/*.json", "../../global.d.ts"],
  "exclude": ["__tests__", "dist", "node_modules"]
}

tsconfig.base.json:

{
  "extends": "ts-node/node14/tsconfig.json",
  "ts-node": {
    "swc": true
  },
  "compilerOptions": {
    "allowJs": true,
    "allowSyntheticDefaultImports": true,
    "downlevelIteration": true,
    "esModuleInterop": true,
    "experimentalDecorators": true,
    "forceConsistentCasingInFileNames": true,
    "lib": ["ES2021"],
    "moduleResolution": "node",
    "noErrorTruncation": true,
    "noImplicitAny": false, // @todo Remove this when we enable strict mode.
    "resolveJsonModule": true,
    "skipLibCheck": true,
    "strict": false, // Not running in strict mode until we have better type safety .
    "target": "ES2021"
  }
}

@naftalimurgor
Copy link
Author

You can post a repo,I think I managed to fix this but can't recall how. You may add a repository to reproduce then I can update with appropriate fix.
Hint: fix probably in thetsconfig.json

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants