nestjs-sentry: Error: Cannot find module 'graphql' (is graphql mandatory?)
I installed nestjs-sentry package, but it seems that graphql is a mandatory package to have as a dependency.
I’ve seen in the README something about Interceptors but I’m not sure if I understood it.
app.module.ts
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AuthModule } from './auth/auth.module';
import { UsersModule } from './users/users.module';
import { TypeOrmModule } from '@nestjs/typeorm';
import { getConnectionOptions } from 'typeorm';
import { LevelsModule } from './levels/levels.module';
import { MoviesModule } from './movies/movies.module';
import { LevelsQuotesModule } from './levels-quotes/levels-quotes.module';
import { UsersProgressesModule } from './users-progresses/users-progresses.module';
import { ProductsModule } from './products/products.module';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { LeaderboardsModule } from './leaderboards/leaderboards.module';
import { SentryModule } from '@ntegral/nestjs-sentry';
import { LogLevel } from '@sentry/types';
@Module({
imports: [
SentryModule.forRootAsync({
imports: [ConfigModule],
useFactory: async (cfg: ConfigService) => ({
dsn: cfg.get('SENTRY_DSN'),
debug: false,
environment: process.env.NODE_ENV,
release: null, // must create a release in sentry.io dashboard
logLevel: LogLevel.Debug, //based on sentry.io loglevel //
}),
inject: [ConfigService],
}),
ConfigModule.forRoot(),
TypeOrmModule.forRootAsync({
useFactory: async () =>
Object.assign(await getConnectionOptions(), {
autoLoadEntities: true,
}),
}),
AuthModule,
UsersModule,
LevelsModule,
MoviesModule,
LevelsQuotesModule,
UsersProgressesModule,
ProductsModule,
LeaderboardsModule,
],
controllers: [AppController],
})
export class AppModule {}
logs
[18:58:29] Found 0 errors. Watching for file changes.
internal/modules/cjs/loader.js:775
throw err;
^
Error: Cannot find module 'graphql'
Require stack:
- C:\Users\Jeremy\www\memorable-nest-api\node_modules\@nestjs\graphql\dist\decorators\directive.decorator.js
- C:\Users\Jeremy\www\memorable-nest-api\node_modules\@nestjs\graphql\dist\decorators\index.js
- C:\Users\Jeremy\www\memorable-nest-api\node_modules\@nestjs\graphql\dist\index.js
- C:\Users\Jeremy\www\memorable-nest-api\node_modules\@nestjs\graphql\index.js
- C:\Users\Jeremy\www\memorable-nest-api\node_modules\@ntegral\nestjs-sentry\dist\graphql.interceptor.js
- C:\Users\Jeremy\www\memorable-nest-api\node_modules\@ntegral\nestjs-sentry\dist\index.js
- C:\Users\Jeremy\www\memorable-nest-api\dist\app.module.js
- C:\Users\Jeremy\www\memorable-nest-api\dist\main.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:772:15)
at Function.Module._load (internal/modules/cjs/loader.js:677:27)
at Module.require (internal/modules/cjs/loader.js:830:19)
at require (internal/modules/cjs/helpers.js:68:18)
at Object.<anonymous> (C:\Users\Jeremy\www\memorable-nest-api\node_modules\@nestjs\graphql\dist\decorators\directive.
decorator.js:4:19)
at Module._compile (internal/modules/cjs/loader.js:936:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:947:10)
at Module.load (internal/modules/cjs/loader.js:790:32)
at Function.Module._load (internal/modules/cjs/loader.js:703:12)
at Module.require (internal/modules/cjs/loader.js:830:19) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'C:\\Users\\Jeremy\\www\\memorable-nest-api\\node_modules\\@nestjs\\graphql\\dist\\decorators\\directive.decorator.js
',
'C:\\Users\\Jeremy\\www\\memorable-nest-api\\node_modules\\@nestjs\\graphql\\dist\\decorators\\index.js',
'C:\\Users\\Jeremy\\www\\memorable-nest-api\\node_modules\\@nestjs\\graphql\\dist\\index.js',
'C:\\Users\\Jeremy\\www\\memorable-nest-api\\node_modules\\@nestjs\\graphql\\index.js',
'C:\\Users\\Jeremy\\www\\memorable-nest-api\\node_modules\\@ntegral\\nestjs-sentry\\dist\\graphql.interceptor.js',
'C:\\Users\\Jeremy\\www\\memorable-nest-api\\node_modules\\@ntegral\\nestjs-sentry\\dist\\index.js',
'C:\\Users\\Jeremy\\www\\memorable-nest-api\\dist\\app.module.js',
'C:\\Users\\Jeremy\\www\\memorable-nest-api\\dist\\main.js'
]
}
package.json
{
"name": "memorable-nest-api",
"version": "0.0.1",
"description": "",
"author": "",
"private": true,
"license": "UNLICENSED",
"scripts": {
"prebuild": "rimraf dist",
"build": "nest build",
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
"start": "nest start",
"start:dev": "nest start --watch",
"start:debug": "nest start --debug --watch",
"start:prod": "node dist/main",
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
"test": "jest",
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "jest --config ./test/jest-e2e.json"
},
"dependencies": {
"@nestjs/common": "^7.6.13",
"@nestjs/config": "^0.6.3",
"@nestjs/core": "^7.6.13",
"@nestjs/jwt": "^7.2.0",
"@nestjs/passport": "^7.1.5",
"@nestjs/platform-express": "^7.6.13",
"@nestjs/swagger": "^4.8.0",
"@nestjs/typeorm": "^7.1.5",
"@nestjsx/crud": "^5.0.0-alpha.3",
"@nestjsx/crud-typeorm": "^5.0.0-alpha.3",
"@ntegral/nestjs-sentry": "^2.0.6",
"@sentry/node": "^6.2.3",
"@types/node-fetch": "^2.5.8",
"class-transformer": "^0.4.0",
"class-validator": "^0.13.1",
"google-auth-library": "^7.0.2",
"http-status-codes": "^2.1.4",
"mysql2": "^2.2.5",
"passport": "^0.4.1",
"passport-jwt": "^4.0.0",
"passport-local": "^1.0.0",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"rxjs": "^6.6.6",
"typeorm": "^0.2.31"
},
"devDependencies": {
"@nestjs/cli": "^7.5.6",
"@nestjs/schematics": "^7.2.7",
"@nestjs/testing": "^7.6.13",
"@types/express": "^4.17.11",
"@types/jest": "^26.0.20",
"@types/node": "^14.14.31",
"@types/passport-jwt": "^3.0.5",
"@types/passport-local": "^1.0.33",
"@types/supertest": "^2.0.10",
"@typescript-eslint/eslint-plugin": "^4.15.2",
"@typescript-eslint/parser": "^4.15.2",
"eslint": "^7.20.0",
"eslint-config-prettier": "^8.1.0",
"eslint-plugin-prettier": "^3.3.1",
"jest": "^26.6.3",
"prettier": "^2.2.1",
"supertest": "^6.1.3",
"ts-jest": "^26.5.2",
"ts-loader": "^8.0.17",
"ts-node": "^9.1.1",
"tsconfig-paths": "^3.9.0",
"typescript": "^4.1.5"
},
"jest": {
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"rootDir": "src",
"testRegex": ".*\\.spec\\.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"collectCoverageFrom": [
"**/*.(t|j)s"
],
"coverageDirectory": "../coverage",
"testEnvironment": "node"
}
}
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 4
- Comments: 17 (8 by maintainers)
Looks like the library is exporting everything in the
index.tsfile, therefore the import statements in thegraphql.interceptorgets evaulated.I’ll take a look at this. Thanks
I failed to get this package to work out of the box, so I now use nest-raven. Works like a charm.