Como corrigir o aviso do WebStorm “Função ou método não resolvido” para “exigir” (SDK do complemento do Firefox)

219

Estou usando o WebStorm 7 para desenvolvimento do SDK do complemento do Firefox .

O WebStorm mostra um aviso: "Função ou método não resolvido" para require().

Eu quero me livrar do aviso.

var pageMod = require("sdk/page-mod");

NOTA: Eu já configurei a biblioteca JavaScript (consulte / lib / sdk globals).

Meio Ambiente:

  • WebStorm 7.0.2
  • Windows 7 64bit
  • SDK do complemento do Firefox 1.15beta1
skatsumata
fonte
var pageMod = new require ("sdk / page-mod"); pode resolver o problema. Observe o 'novo' no código
NBK 30/11
Eu tive o mesmo problema com o WebStorm 8
Anthony O.

Respostas:

351

Você quer dizer que require()não foi resolvido? Você precisa adicionar require.jsao seu projeto ou ativar a Node.js Globalsbiblioteca predefinida em Configurações / Idiomas e estruturas / JavaScript / Bibliotecas.

(Caminho das configurações editadas por @yurik)

No WebStorm 2016.x-2017.x: verifique se a biblioteca Node.js principal está ativada no Settings (Preferences) | Languages & Frameworks | Node.js and NPM

No IntelliJ 2018.3.2, acesse Settings (Preferences) | Languages & Frameworks | Node.js and NPMe ativeCoding assistance for Node.js

Lena
fonte
Obrigado lena. e desculpe meu inglês ruim. (> _ <;) Quero limpar o aviso no editor de tempestade da web. (a execução do script não é problema.) O Firefox-Addon-SDK conecta commonjs, mas não usa node.js. Método "require" definido <sdkroot> /app-extension/bootstrap.js Eu configurei o bootstrap.js como Bibliotecas externas, mas não limpe o aviso "não resolvido". <code> deixe exigir = cuddlefish.Require (carregador, módulo); função loadSandbox (uri) {deixe sandbox = ... sandbox.require = function (id) {retorne Object.freeze ({...}); }; retornar sandbox; </code>
skatsumata 26/11
11
Resposta útil! Aliás, no meu webstorm 9, o local é: Idiomas e estruturas -> Javascript -> Bibliotecas ; Outra abordagem é procurar "Bibliotecas"
Paul Ho
1
No Webstorm 9, você também pode clicar com o botão direito do mouse em "require" e escolher "Use Javascript Library-> Node.js Globals"
Josh Noe
Ative o plug-in NodeJS se 'Node.js Globals' estiver ausente na lista da biblioteca.
0x539
1
FYI: Eu tive que desligar meu assistente de nó, caches inválidos e reiniciar o WebStorm e, em seguida, ligá-lo novamente para fazê-lo funcionar. WebStorm 2018.3.5
Reactgular 28/02/19
226

Tempestade na Web 11 e 2016.2.3

Habilite Node.js Core librarynas configurações de Tempestade na Web.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Andrzej Rehmann
fonte
Eu só queria acrescentar que tinha o mesmo problema e, embora minha biblioteca principal já estivesse ativada, ir para a tela de configurações parecia corrigir o problema.
Rob Rose
1
não funcionou para mim usando o texto datilografado com a versão mais recente do nó e do webstorm. Ainda à procura de uma solução para nós angular2 pessoas. Uso dentro de uma definição de componentestyles: [require('./app.component.css')]
Andre
Ainda tenho o erro no erro do compilador TS2304: Não foi possível encontrar o nome 'require'.
SuperUberDuper
@SuperUberDuper Você deve substituir 'require' por import {*} from 'node module'e especificar "target": "CommonJS"dentro de tsconfig.json
Bhoomtawath Plinsut
Trabalhou assim que eu habilitado nas preferências WebStorm (não as configurações do projeto)
U_D
46

No PHPStorm, é um pouco mais fácil: você pode procurar o NPM nas configurações ou:

File > Settings > Language & Frameworks > Node.js and NPM

Em seguida, clique no botão ativar (aparentemente em novas versões, é chamado "Assistência de codificação para nó").

Zane Hooper
fonte
2
Não havia um botão de habilitação, mas havia [x] assistência de codificação para o Node.js que eu verifiquei e parece reconhecer agora.
Dustin Graham
Obrigado pela atualização Dustin, atualizei minha resposta de acordo.
Zane Hooper
45

Depois de passar uma hora tentando fazer isso funcionar usando todas as soluções encontradas online, isso finalmente deu certo!

Arquivo -> invalidar caches / reiniciar ...

M.Vanderlee
fonte
2
Isso funcionou para mim com o WebStrom 2017.2.4 para resolver um problema em que o Array.push era falsamente indicado como um método que não existia.
POSIX-compliant
1
Trabalhou para mim após a atualização PhpStorm 2017.2.4 Número da compilação PS-172.4155.41 . O problema era que o IDE ignorava as especificações do ES6.
Maximilian Fixl
13

Trabalhando com Intellj 2016, Angular2 e Typescript ... a única coisa que funcionou para mim foi obter as Definições de Typecript para NodeJS

Obter node.d.ts de DefinitelyTyped no GitHub

Ou apenas execute:

npm install @types/node --save-dev

Em tsconfig.json, inclua

"types": [
     "node"
  ]
TetraDev
fonte
3
Obrigado! Eu sinto que tenho procurado por idades! Apenas instalar @ types / node acalmou o WebStorm; Eu vou ver sobre o compilador mais tarde.
Kesarion
Obrigado, isso funcionou para mim. Para mim, costumava funcionar usando a resposta aceita aqui, mas de alguma forma começou a entrar em conflito quando adicionei novas bibliotecas. Este fixa o meu problema novamente
viorel
10

No WebStorm 2018.3, uma interface um pouco diferente insira a descrição da imagem aqui

Sergey Smolnikov
fonte
5

Outra solução que me ajudou muito é atualizar todas as bibliotecas no "Node.js e NPM". Você precisa apenas marcar todas as bibliotecas e clicar na seta azul - 'atualizar'insira a descrição da imagem aqui

Konstantin Malikov
fonte
4

Solução no Webstorm 2016.3

1) clique em ALT + F12 (treminal aberto)

2) execute o comando: npm install require.js

GalBenEvgi
fonte
4

Desative as JetBrains Inspections e obtenha o plug-in ESLint.

A única coisa que File | Invalidate caches and restartfaz por mim é redefini-lo por tempo suficiente para me fazer pensar que o erro se foi. Depois que as inspeções são executadas novamente, o erro volta como um presente que continua dando.

Eu me salvou toda essa frustração, desativando todas as inspeções JetBrains ( Editor> Inspections> desmarque JavaScript) Então eu instalado o plugin ESLint.

A inspeção que as causas "método da função não resolvido" pode ser desligado, indo para inspeções JetBrains ( Editor> Inspections> JavaScript) e pesquisar por "não resolvido Javascript" e desligar "a função não resolvido Javascript" e "não resolvido Javascript variável"

Eu matei todos eles e editei meu código sem complicações desde então.

Shanimal
fonte
3

Para o WebStorm 2019.3 Arquivo> Preferências ou Configurações> Idiomas e Estruturas> Node.js e NPM -> Ativar assistência de codificação para NodeJs

Observe que os pacotes adicionais que você deseja usar estão incluídos.

Arda Kazancı
fonte
2

Ok, aqui já vi muitas respostas, quero acrescentar mais algumas que são corrigidas de função / método / aviso de variável não resolvida.

Isso foi resolvido "função ou método não resolvido para 'require' e algum outro aviso"

Go -> Preferences-> Languages & Frameworks -> Node.js and NPM, then checkmark the "Coding assistance for Node.js"

Se você ainda vir esse tipo de aviso, variável não resolvida ou algo parecido, poderá desativar manualmente esses avisos seguindo as instruções a seguir.

Go -> Preferences-> Editor-> Inspections-> JavaScript-> General.  

e você encontrará uma lista e desmarca o aviso que deseja desativar e aplicar.

Md Alamin
fonte
0

Arquivo-> Configurações-> Idiomas e Estruturas-> JavaScript

Instrução

Dmitry Matrosov
fonte