Search code examples
typescriptgulpclass-validatorgulp-typescript

TS2307: Cannot find module 'class-validator'


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?


Solution

  • 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