Ошибки NestJs, возникающие из-за зависимостей @types в node_modules при запуске start: prod в новом проекте - PullRequest
0 голосов
/ 23 мая 2019

Моя цель - запустить приложение nestjs, которое обслуживает угловой интерфейс.В корне проекта у меня есть приложение Angular cli scaffolded (созданное с использованием @ angular / cli последней версии 8).Внутри этой папки я использовал nestjs cli для создания нового приложения nestjs (имя приложения - сервер).

Затем я перехожу на сервер и запускаю npm run start: prod и получаю следующие ошибки:


../node_modules/@types/jasmine/ts3.1/index.d.ts:15:1 - error TS6200: Definitions of the following identifiers conflict with those in another file: describe, fdescribe, xdescribe, it, fit, xit, beforeEach, afterEach, beforeAll, afterAll, expect, CustomEqualityTester,
CustomMatcherFactory, DEFAULT_TIMEOUT_INTERVAL

15 type ImplementationCallback = (() => Promise<any>) | ((done: DoneFn) => void);
   ~~~~

  node_modules/@types/jest/index.d.ts:24:1
    24 declare var beforeAll: jest.Lifecycle;
       ~~~~~~~
    Conflicts are in this file.

../node_modules/@types/jasmine/ts3.1/index.d.ts:235:9 - error TS2375: Duplicate number index signature.

235         [n: number]: T;
            ~~~~~~~~~~~~~~~

../node_modules/@types/jasmine/ts3.1/index.d.ts:238:15 - error TS2428: All declarations of 'ArrayContaining' must have identical type parameters.

238     interface ArrayContaining<T> {
                  ~~~~~~~~~~~~~~~

../node_modules/@types/jasmine/ts3.1/index.d.ts:245:15 - error TS2428: All declarations of 'ObjectContaining' must have identical type parameters.

245     interface ObjectContaining<T> {
                  ~~~~~~~~~~~~~~~~

../node_modules/@types/jasmine/ts3.1/index.d.ts:287:9 - error TS2374: Duplicate string index signature.

287         [index: string]: CustomMatcherFactory;
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

../node_modules/@types/jasmine/ts3.1/index.d.ts:292:9 - error TS2687: All declarations of 'message' must have identical modifiers.

292         message?: string;
            ~~~~~~~

../node_modules/@types/jasmine/ts3.1/index.d.ts:292:9 - error TS2717: Subsequent property declarations must have the same type.  Property 'message' must be of type 'string | (() => string)', but here has type 'string'.

292         message?: string;
            ~~~~~~~

../node_modules/@types/jasmine/ts3.1/index.d.ts:718:15 - error TS2428: All declarations of 'SpyAnd' must have identical type parameters.

718     interface SpyAnd<Fun extends InferableFunction> {
                  ~~~~~~

../node_modules/@types/jasmine/ts3.1/index.d.ts:735:15 - error TS2428: All declarations of 'Calls' must have identical type parameters.

735     interface Calls<Fun extends InferableFunction> {
                  ~~~~~

../node_modules/@types/jasmine/ts3.1/index.d.ts:754:15 - error TS2428: All declarations of 'CallInfo' must have identical type parameters.

754     interface CallInfo<Fun extends InferableFunction> {
                  ~~~~~~~~

../node_modules/@types/jasmine/ts3.1/index.d.ts:758:9 - error TS2717: Subsequent property declarations must have the same type.  Property 'args' must be of type 'any[]', but here has type 'Parameters<Fun>'.

758         args: Parameters<Fun>;
            ~~~~

../node_modules/@types/jasmine/ts3.1/index.d.ts:760:9 - error TS2717: Subsequent property declarations must have the same type.  Property 'returnValue' must be of type 'any', but here has type 'ReturnType<Fun>'.

760         returnValue: ReturnType<Fun>;
            ~~~~~~~~~~~

../node_modules/@types/jasminewd2/index.d.ts:10:18 - error TS2300: Duplicate identifier 'it'.

10 declare function it(expectation: string, assertion?: (done: DoneFn) => Promise<void>, timeout?: number): void;
                    ~~

  node_modules/@types/jest/index.d.ts:31:13
    31 declare var it: jest.It;
                   ~~
    'it' was also declared here.

../node_modules/@types/jasminewd2/index.d.ts:11:18 - error TS2300: Duplicate identifier 'fit'.

11 declare function fit(expectation: string, assertion?: (done: DoneFn) => Promise<void>, timeout?: number): void;
                    ~~~

  node_modules/@types/jest/index.d.ts:32:13
    32 declare var fit: jest.It;
                   ~~~
    'fit' was also declared here.

../node_modules/@types/jasminewd2/index.d.ts:12:18 - error TS2300: Duplicate identifier 'xit'.

12 declare function xit(expectation: string, assertion?: (done: DoneFn) => Promise<void>, timeout?: number): void;
                    ~~~

  node_modules/@types/jest/index.d.ts:33:13
    33 declare var xit: jest.It;
                   ~~~
    'xit' was also declared here.

../node_modules/@types/jasminewd2/index.d.ts:13:18 - error TS2300: Duplicate identifier 'beforeEach'.

13 declare function beforeEach(action: (done: DoneFn) => Promise<void>, timeout?: number): void;
                    ~~~~~~~~~~

  node_modules/@types/jest/index.d.ts:25:13
    25 declare var beforeEach: jest.Lifecycle;
                   ~~~~~~~~~~
    'beforeEach' was also declared here.

../node_modules/@types/jasminewd2/index.d.ts:14:18 - error TS2300: Duplicate identifier 'afterEach'.

14 declare function afterEach(action: (done: DoneFn) => Promise<void>, timeout?: number): void;
                    ~~~~~~~~~

  node_modules/@types/jest/index.d.ts:27:13
    27 declare var afterEach: jest.Lifecycle;
                   ~~~~~~~~~
    'afterEach' was also declared here.

../node_modules/@types/jasminewd2/index.d.ts:15:18 - error TS2300: Duplicate identifier 'beforeAll'.

15 declare function beforeAll(action: (done: DoneFn) => Promise<void>, timeout?: number): void;
                    ~~~~~~~~~

  node_modules/@types/jest/index.d.ts:24:13
    24 declare var beforeAll: jest.Lifecycle;
                   ~~~~~~~~~
    'beforeAll' was also declared here.

../node_modules/@types/jasminewd2/index.d.ts:16:18 - error TS2300: Duplicate identifier 'afterAll'.

16 declare function afterAll(action: (done: DoneFn) => Promise<void>, timeout?: number): void;
                    ~~~~~~~~

  node_modules/@types/jest/index.d.ts:26:13
    26 declare var afterAll: jest.Lifecycle;
                   ~~~~~~~~
    'afterAll' was also declared here.

node_modules/@types/jest/index.d.ts:24:1 - error TS6200: Definitions of the following identifiers conflict with those in another file: describe, fdescribe, xdescribe, it, fit, xit, beforeEach, afterEach, beforeAll, afterAll, expect, CustomEqualityTester, CustomMatcherFactory, DEFAULT_TIMEOUT_INTERVAL

24 declare var beforeAll: jest.Lifecycle;
   ~~~~~~~

  ../node_modules/@types/jasmine/ts3.1/index.d.ts:15:1
    15 type ImplementationCallback = (() => Promise<any>) | ((done: DoneFn) => void);
       ~~~~
    Conflicts are in this file.

node_modules/@types/jest/index.d.ts:24:13 - error TS2300: Duplicate identifier 'beforeAll'.

24 declare var beforeAll: jest.Lifecycle;
               ~~~~~~~~~

  ../node_modules/@types/jasminewd2/index.d.ts:15:18
    15 declare function beforeAll(action: (done: DoneFn) => Promise<void>, timeout?: number): void;
                        ~~~~~~~~~
    'beforeAll' was also declared here.

node_modules/@types/jest/index.d.ts:25:13 - error TS2300: Duplicate identifier 'beforeEach'.

25 declare var beforeEach: jest.Lifecycle;
               ~~~~~~~~~~

  ../node_modules/@types/jasminewd2/index.d.ts:13:18
    13 declare function beforeEach(action: (done: DoneFn) => Promise<void>, timeout?: number): void;
                        ~~~~~~~~~~
    'beforeEach' was also declared here.

node_modules/@types/jest/index.d.ts:26:13 - error TS2300: Duplicate identifier 'afterAll'.

26 declare var afterAll: jest.Lifecycle;
               ~~~~~~~~

  ../node_modules/@types/jasminewd2/index.d.ts:16:18
    16 declare function afterAll(action: (done: DoneFn) => Promise<void>, timeout?: number): void;
                        ~~~~~~~~
    'afterAll' was also declared here.

node_modules/@types/jest/index.d.ts:27:13 - error TS2300: Duplicate identifier 'afterEach'.

27 declare var afterEach: jest.Lifecycle;
               ~~~~~~~~~

  ../node_modules/@types/jasminewd2/index.d.ts:14:18
    14 declare function afterEach(action: (done: DoneFn) => Promise<void>, timeout?: number): void;
                        ~~~~~~~~~
    'afterEach' was also declared here.

node_modules/@types/jest/index.d.ts:31:13 - error TS2300: Duplicate identifier 'it'.

31 declare var it: jest.It;
               ~~

  ../node_modules/@types/jasminewd2/index.d.ts:10:18
    10 declare function it(expectation: string, assertion?: (done: DoneFn) => Promise<void>, timeout?: number): void;
                        ~~
    'it' was also declared here.

node_modules/@types/jest/index.d.ts:32:13 - error TS2300: Duplicate identifier 'fit'.

32 declare var fit: jest.It;
               ~~~

  ../node_modules/@types/jasminewd2/index.d.ts:11:18
    11 declare function fit(expectation: string, assertion?: (done: DoneFn) => Promise<void>, timeout?: number): void;
                        ~~~
    'fit' was also declared here.

node_modules/@types/jest/index.d.ts:33:13 - error TS2300: Duplicate identifier 'xit'.

33 declare var xit: jest.It;
               ~~~

  ../node_modules/@types/jasminewd2/index.d.ts:12:18
    12 declare function xit(expectation: string, assertion?: (done: DoneFn) => Promise<void>, timeout?: number): void;
                        ~~~
    'xit' was also declared here.

node_modules/@types/jest/index.d.ts:1009:46 - error TS2314: Generic type 'ArrayContaining<T>' requires 1 type argument(s).

1009     function arrayContaining(sample: any[]): ArrayContaining;
                                                  ~~~~~~~~~~~~~~~

node_modules/@types/jest/index.d.ts:1010:45 - error TS2314: Generic type 'ObjectContaining<T>' requires 1 type argument(s).

1010     function objectContaining(sample: any): ObjectContaining;
                                                 ~~~~~~~~~~~~~~~~

node_modules/@types/jest/index.d.ts:1036:15 - error TS2428: All declarations of 'ArrayContaining' must have identical type parameters.

1036     interface ArrayContaining {
                   ~~~~~~~~~~~~~~~

node_modules/@types/jest/index.d.ts:1042:15 - error TS2428: All declarations of 'ObjectContaining' must have identical type parameters.

1042     interface ObjectContaining {
                   ~~~~~~~~~~~~~~~~

node_modules/@types/jest/index.d.ts:1051:14 - error TS2314: Generic type 'SpyAnd<Fun>' requires 1 type argument(s).

1051         and: SpyAnd;
                  ~~~~~~

node_modules/@types/jest/index.d.ts:1052:16 - error TS2314: Generic type 'Calls<Fun>' requires 1 type argument(s).

1052         calls: Calls;
                    ~~~~~

node_modules/@types/jest/index.d.ts:1058:15 - error TS2428: All declarations of 'SpyAnd' must have identical type parameters.

1058     interface SpyAnd {
                   ~~~~~~

node_modules/@types/jest/index.d.ts:1091:15 - error TS2428: All declarations of 'Calls' must have identical type parameters.

1091     interface Calls {
                   ~~~~~

node_modules/@types/jest/index.d.ts:1117:16 - error TS2314: Generic type 'CallInfo<Fun>' requires 1 type argument(s).

1117         all(): CallInfo[];
                    ~~~~~~~~

node_modules/@types/jest/index.d.ts:1122:23 - error TS2314: Generic type 'CallInfo<Fun>' requires 1 type argument(s).

1122         mostRecent(): CallInfo;
                           ~~~~~~~~

node_modules/@types/jest/index.d.ts:1127:18 - error TS2314: Generic type 'CallInfo<Fun>' requires 1 type argument(s).

1127         first(): CallInfo;
                      ~~~~~~~~

node_modules/@types/jest/index.d.ts:1134:15 - error TS2428: All declarations of 'CallInfo' must have identical type parameters.

1134     interface CallInfo {
                   ~~~~~~~~

node_modules/@types/jest/index.d.ts:1170:9 - error TS2687: All declarations of 'message' must have identical modifiers.

1170         message: string | (() => string);
             ~~~~~~~


Found 40 errors.

npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! server@0.0.1 build: `tsc -p tsconfig.build.json`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the server@0.0.1 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/ubuntu/.npm/_logs/2019-05-23T00_35_21_233Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! server@0.0.1 prestart:prod: `rimraf dist && npm run build`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the server@0.0.1 prestart:prod script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

Я использую bash (подсистему Linux для Linux) с версией узла 12. Я ничего не трогал, оба приложения заново созданы из CLI.

Запуск npm отлично работает, кстати.

Когда я создаю отдельный проект, приложение nestjs работает нормально, только когда оно находится внутри корня, содержащего угловое приложение, что-то идет не так.Могут ли файлы tsconfig блокироваться в родительском каталоге и вызывать проблемы?

1 Ответ

0 голосов
/ 23 мая 2019

Так что я был прав, думая, что typcript ищет наборы в родительских каталогах (очевидно, вплоть до "/").

Я исправил это, добавив следующую команду в раздел compilerOptions tsconfig в моем приложении nestjs:

"typeRoots": ["./node_modules/@types"],

Говоря, что нужно искать только в этом каталоге.

...