33

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'

2
  • 1
    show your p2p.component.ts Commented Nov 2, 2018 at 9:17
  • declare var require : any; export class P2pComponent implements OnInit { constructor() { var Peer = require(peer) var p = new Peer({ initiator: location.hash === '#1', trickle: false }) p.on('signal', function (data) { console.log('SIGNAL', JSON.stringify(data)) document.querySelector('#outgoing').textContent = JSON.stringify(data) }) document.querySelector('form').addEventListener('submit', function (ev) { ev.preventDefault()}) p.on('connect', function () { console.log('CONNECT') p.send('whatever' + Math.random()) }) } } Commented Nov 5, 2018 at 1:28

6 Answers 6

46

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.

Sign up to request clarification or add additional context in comments.

5 Comments

For me worked when I added it to tsconfig.app.json! Thanks a lot!
I found I could add "node" to "types" in tsconfig.app.json without also including it in tsconfig.json and the project compiled for me.
Winner! The problem is that a default tsconfig.app.json has an empty types property, which obliterates the one from tsconfig.json. Took me a while to work that out
This works for react or any typescript project
@DaveNottage input helped me, removing empty types from tsconfig.app.json and added types=["node"] in tsconfig.json fixed the issue for me.
31

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

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

Comments

21

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"]
    }
}

Comments

5

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)

2 Comments

Did you get a proper solution mate?
No, never came back to revisit this
1

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');

Comments

1

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.