cannot find name 'require' in angular 7(ty

2020-02-10 02:49发布

问题:

My question is why this error shown?

ERROR in src/app/p2p/p2p.component.ts(14,16): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try npm i @types/node.

I have install

 @types/node
in app/tsconfig.app.json have add 
"types": [
    "node" 
  ],
  "typeRoots": [ 
  "../node_modules/@types"
 ]  

but there is error cannot find 'require'

回答1:

The problem also remained after adding it to my tsconfig.json, but additionaly adding the following line to tsconfig.app.json resolved it for me:

{
"compilerOptions": {
    "types": ["node"]
}

So be sure to add this into both files ./tsconfig.json AND ./src/tsconfig.app.json and it should work.



回答2:

Add the following settings to src/tsconfig.app.json

{
  "compilerOptions": {
    "types": ["node"]
  }
}


回答3:

Type node is missing

install @types/node :

npm install --save @types/node

or

yarn add @types/node

edit your src/tsconfig.json adding:

{
    "compilerOptions": {
        "types": ["node"]
    }
}


回答4:

Like some other folks, I, too, had added node to the 'types' array in tsconfig and for some reason it made no difference. Knowing full well that this is a hack, here's how I resolved it:

Add this line anywhere above the 'require' statement: declare const require: any;

This is not a real fix, but I don't have the time to battle with this type of plumbing problem right now. I'll come back and deal with it later (or probably not, but that's OK, too)



回答5:

check tsconfig.json too. you need to add the same settings there too.



回答6:

Its all because typeScript is not aware of the require keyword so do add a line making typescript aware of require keyword

once its compiled to javascript it knows the require word better and make the work done

declare var require: any;

const pokemon = require('src/assets/pokedex.json');