TS2307: Cannot find module 'class-validator'

11,953

Solution 1

Set "moduleResolution": "node" in your tsconfig.json:

{
  "compilerOptions": {
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "noImplicitAny": true,
    "target": "es6"
  }
}

You can find more info on how TypeScript resolves your imported modules here: https://www.typescriptlang.org/docs/handbook/module-resolution.html#node

Solution 2

This worked for me: yarn add graphql class-validator type-graphql

Source: https://github.com/MichalLytek/type-graphql/issues/625#issuecomment-626368051

Solution 3

You need to install typescript types for validator in addition to installing class-validator.

That is npm install @types/validator

Share:
11,953
Ole
Author by

Ole

Updated on June 17, 2022

Comments

  • Ole
    Ole about 2 years

    I'm attempting to use the class-validator module in a typescript project. However when I compile typescript issues the following warning:

    src/main/ts/domain/Order.ts(1,48): error TS2307: Cannot find module 'class-validator'.
    

    The line it is complaining about looks like this:

      import { IsInt, IsNotEmpty, IsDate, Min } from "class-validator";
    

    I have gulp setup like this:

        var gulp = require('gulp');
        var ts = require('gulp-typescript');
        var tsProject = ts.createProject("tsconfig.json");
    
        gulp.task('default', function() {
          return tsProject.src()
            .pipe(tsProject())
            .js.pipe(gulp.dest("target/main/js"));
        });
    

    And my tsconfig.json looks like this:

        {
            "files": [
                "src/main/ts/**/*.ts"
            ],
            "compilerOptions": {
                "experimentalDecorators": true,
                "noImplicitAny": true,
                "target": "es6"
            }
        }
    

    Thoughts?

  • M-Chen-3
    M-Chen-3 about 3 years
    Please explain what your code does and how it does it.