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

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


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


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ó").


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 ...


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

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


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


4

Solução no Webstorm 2016.3

1) clique em ALT + F12 (treminal aberto)

2) execute o comando: npm install require.js


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.


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.


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.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.