'Please add a @NgModule annotation but I cannot figure why

I have a Node/Angular app which works locally in a Docker instance. For deployment to a Google VM, we have a script which checks out the Git files, compiles them, copies the outputs into an nginx folder and restarts the nginx.

I have (what I thought was) identical setups on two different VMs. I test any changes on the "staging" VM and then if all is working correctly, I run them on the "production" VM.

Yesterday, this system broke. My staging VM pulls, compiles and runs the code without any issues or even warnings. The production VM gives errors during the compilation

The compilation line is

sudo $(npm bin)/ng build --prod --output-path=dist

and the first error I see is

ERROR in : Unexpected value 'AngularFireDatabaseModule in /home/redacted/ng-app/node_modules/@angular/fire/database/angular-fire-database.d.ts' imported by the module 'AppModule in /home/redacted/ng-app/src/app/app.module.ts'. Please add a @NgModule annotation.

So, I saw this question which said I should move import to the declarations section. I did this for AngularFireDatabaseModule and then it would not compile on my (working) staging server, giving me an error

Please add a @Pipe/@Directive/@Component annotation

Which this answer says means I need to move the declaration back to the imports!

My assumption is that my two supposedly identical VMs have something different about them, but I am having difficulty figuring out what.

Is there some kind soul who can help me figure out what the difference is?

Both VMs: Running Ubuntu 20.04.3 LTS (GNU/Linux 5.11.0-1028-gcp x86_64)

Both VMs up to date

Both VMs: node --version

v17.4.0

Both VMs: sudo node --version

v13.14.0

Both VMs: npm -v

8.3.1

Both VMs: sudo npm -v

6.14.4

What else should I be checking for?



Solution 1:[1]

OK, I can't be sure what exactly fixed it, but in the end, I had to go into the folder where the compilation was occurring and run sudo npm update which seemd to fix the problems. Could've sworn I did that a few times before, but ¯\(?)

Leaving this for anyone who is despairing - the simple answers seem to work best

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Kibi