javascript - Modul ikke funnet: Feil: Rekursjon ved løsning i Angular-app


Jeg prøver å importere modulen min import { waitProp } from 'wait-prop';

Og jeg har denne feilen

ERROR in ./src/app/qr-scanner/qr-scanner.component.ts
Module not found: Error: Recursion in resolving
Stack:
  resolve: (/Users/gkucmierz/workspace/web-tools/src/app/qr-scanner) wait-prop
  newResolve: (/Users/gkucmierz/workspace/web-tools/src/app/qr-scanner) wait-prop
  parsedResolve: (/Users/gkucmierz/workspace/web-tools/src/app/qr-scanner) wait-prop module
  describedResolve: (/Users/gkucmierz/workspace/web-tools/src/app/qr-scanner) wait-prop module
  rawModule: (/Users/gkucmierz/workspace/web-tools/src/app/qr-scanner) wait-prop
  module: (/Users/gkucmierz/workspace/web-tools/src/app/qr-scanner) wait-prop
  resolve: (/Users/gkucmierz/workspace/web-tools/node_modules) ./wait-prop
  newResolve: (/Users/gkucmierz/workspace/web-tools/node_modules) ./wait-prop
  parsedResolve: (/Users/gkucmierz/workspace/web-tools/node_modules) ./wait-prop
  describedResolve: (/Users/gkucmierz/workspace/web-tools/node_modules) ./wait-prop
  relative: (/Users/gkucmierz/workspace/web-tools/node_modules/wait-prop) 
  describedRelative: (/Users/gkucmierz/workspace/web-tools/node_modules/wait-prop) 
  rawFile: (/Users/gkucmierz/workspace/web-tools/node_modules/wait-prop) 
  file: (/Users/gkucmierz/workspace/web-tools/node_modules/wait-prop) 
  relative: (/Users/gkucmierz/workspace/wait-prop) 
  describedRelative: (/Users/gkucmierz/workspace/wait-prop) 

Dette er min Angular-versjon:

ng version

     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/
    

Angular CLI: 10.0.0
Node: 14.4.0
OS: darwin x64

Angular: 10.0.1
... animations, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, router
Ivy Workspace: Yes

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.1000.0
@angular-devkit/build-angular     0.1000.0
@angular-devkit/build-optimizer   0.1000.0
@angular-devkit/build-webpack     0.1000.0
@angular-devkit/core              10.0.0
@angular-devkit/schematics        10.0.0
@angular/cdk                      10.0.0
@angular/cli                      10.0.0
@angular/material                 10.0.0
@ngtools/webpack                  10.0.0
@schematics/angular               10.0.0
@schematics/update                0.1000.0
rxjs                              6.5.5
typescript                        3.9.5
webpack                           4.43.0

Hva kan være galt her?

Jeg vet ikke hva jeg skal skrive ennå for å unngå at dette innlegget ser ut til å være mest kode. Jeg la til mange detaljer, inkludert versjonene av miljøet mitt.

Svar #1

Som @circleofconfusion, ser jeg effektivt dette på min CI (og også i en Docker-container som gjør noen ting med min node_modules-mappe som sannsynligvis også vil skje på en CI).

Jeg oppdaget at argumentet --preserveSymlinks når det sendes til ng test (det er der jeg ser feilen) vil bryte rekursjonen (fikse) for å løse modulen jeg hadde en feil med.

Du vil finne dette argumentet på https://angular.io/cli/build, og du kan redigere din angular.json for å sette egenskapen slik at du ikke trenger å spesifisere den på kommandolinjen. Du må legge det til i options-blokken i hver av de problematiske byggerne (sannsynligvis i noen av byggerne som starter med "@angular-devkit/build-angular"). Dette vil fortelle Angular å ikke løse symboliske lenker til deres faktiske sti, og løser problemet jeg har (min node_modules er faktisk symbolsk lenket til et delt sted).

Håper dette hjelper!

Relaterte artikler