¿Cómo puedo solucionar la advertencia de WebStorm "Función o método no resuelto" para "require" (SDK de complemento de Firefox)

219

Estoy usando WebStorm 7 para el desarrollo del SDK de complementos de Firefox .

WebStorm muestra una advertencia: "Función o método no resuelto" para require().

Quiero deshacerme de la advertencia.

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

NOTA: ya configuré la biblioteca de JavaScript (consulte / lib / sdk globals).

Ambiente:

  • WebStorm 7.0.2
  • Windows 7 de 64 bits
  • Firefox Add-on SDK 1.15beta1
skatsumata
fuente
var pageMod = new require ("sdk / page-mod"); Puede resolver el problema. Observe el 'nuevo' en el código
NBK
Tuve el mismo problema con WebStorm 8
Anthony O.

Respuestas:

351

¿Quieres decir que require()no está resuelto? Debe agregar require.jsa su proyecto o habilitar la Node.js Globalsbiblioteca predefinida en Configuración / Idiomas y marcos / JavaScript / Bibliotecas.

(Ruta de configuración editada por @yurik)

En WebStorm 2016.x-2017.x: asegúrese de que la biblioteca Node.js Core esté habilitada en Settings (Preferences) | Languages & Frameworks | Node.js and NPM

En IntelliJ 2018.3.2, vaya Settings (Preferences) | Languages & Frameworks | Node.js and NPMy habiliteCoding assistance for Node.js

lena
fuente
Gracias lena y perdón mi inglés pobre. (> _ <;) Quiero limpiar la advertencia en webstorm-editor. (la ejecución del script no es un problema). Firefox-Addon-SDK cumple con commonjs, pero no usa node.js. Método "require" definido <sdkroot> /app-extension/bootstrap.js Configuré bootstrap.js en Bibliotecas externas, pero no borré la advertencia "no resuelta". <code> let require = cuddlefish.Require (cargador, módulo); function loadSandbox (uri) {let sandbox = ... sandbox.require = function (id) {return Object.freeze ({...}); }; caja de arena de retorno; </code>
skatsumata
11
Respuesta útil! Por cierto, en mi tormenta web 9, la ubicación es: Lenguaje y marcos -> Javascript -> Bibliotecas ; Otro enfoque es buscar "Bibliotecas"
Paul Ho
1
En Webstorm 9, también puede hacer clic con el botón derecho en "requerir" y elegir "Usar biblioteca Javascript-> Node.js Globals"
Josh Noe
Habilite el complemento NodeJS si falta 'Node.js Globals' en la lista de bibliotecas.
0x539
1
FYI: tuve que apagar mi asistente de nodo, cachés no válidos y reiniciar WebStorm y luego volver a encenderlo para que funcione. WebStorm 2018.3.5
Reactgular
226

Webstorm 11 y 2016.2.3

Habilitar Node.js Core libraryen la configuración de Webstorm.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Andrzej Rehmann
fuente
Solo quería agregar que tenía el mismo problema y, aunque mi biblioteca principal ya estaba habilitada, ir a la pantalla de configuración parecía solucionar el problema.
Rob Rose
1
no funcionó para mí usando el mecanografiado con la última versión de node y webstorm. Todavía en la búsqueda de una solución para nosotros personas angular2. Uso dentro de una definición de componentestyles: [require('./app.component.css')]
Andre
Todavía tengo el error en el error del compilador TS2304: No puedo encontrar el nombre 'requerir'.
SuperUberDuper
@SuperUberDuper Debe reemplazar 'require' con import {*} from 'node module'y especificar "target": "CommonJS"dentro de tsconfig.json
Bhoomtawath Plinsut
Funcionó tan pronto como lo habilité en las preferencias de Webstorm (no en la configuración del proyecto)
U_D
46

En PHPStorm, es un poco más fácil: solo puede buscar NPM en la configuración o:

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

Luego haga clic en el botón habilitar (aparentemente en las nuevas versiones, se llama "Ayuda de codificación para el nodo").

Zane Hooper
fuente
2
No había un botón de habilitación, pero había [x] Ayuda de codificación para Node.js que verifiqué, y parece reconocer que se requiere ahora.
Dustin Graham
Gracias por la actualización Dustin, actualicé mi respuesta en consecuencia.
Zane Hooper
45

Después de pasar una hora tratando de hacer que esto funcione con todas las soluciones que se encuentran en línea, ¡finalmente funcionó!

Archivo -> Invalidar cachés / reiniciar ...

M.Vanderlee
fuente
2
Esto funcionó para mí con WebStrom 2017.2.4 para resolver un problema donde Array.push fue falsamente indicado como un método que no existía.
Cumple con POSIX el
1
Trabajó para mí después de la actualización PhpStorm 2017.2.4 Número de compilación PS-172.4155.41 . El problema era que el IDE ignoraba las especificaciones de ES6.
Maximilian Fixl
13

Trabajando con Intellj 2016, Angular2 y mecanografiado ... lo único que funcionó para mí fue obtener las definiciones de mecanografiado para NodeJS

Obtenga node.d.ts de DefinitelyTyped en GitHub

O simplemente ejecuta:

npm install @types/node --save-dev

Luego, en tsconfig.json, incluya

"types": [
     "node"
  ]
TetraDev
fuente
3
¡Gracias! ¡Siento que he estado buscando por años! Simplemente instalando @ types / node se calmó WebStorm; Veré sobre el compilador más tarde.
Kesarion
Gracias, esto funcionó para mí. Para mí, solía funcionar usando la respuesta aceptada aquí, pero de alguna manera comenzó a entrar en conflicto al agregar nuevas bibliotecas. Esto solucionó mi problema nuevamente
viorel
10

En WebStorm 2018.3 una interfaz un poco diferente ingrese la descripción de la imagen aquí

Sergey Smolnikov
fuente
5

Otra solución que me ayudó mucho es actualizar todas las bibliotecas en "Node.js y NPM". Solo necesita marcar todas las librerías y hacer clic en la flecha azul - 'actualizar'ingrese la descripción de la imagen aquí

Konstantin Malikov
fuente
4

Solución en Webstorm 2016.3

1) haga clic en ALT + F12 (treminal abierto)

2) ejecuta el comando: npm install require.js

GalBenEvgi
fuente
4

Deshabilite las inspecciones de JetBrains y obtenga el complemento ESLint.

Lo único que File | Invalidate caches and restarthace por mí es restablecerlo el tiempo suficiente para engañarme y hacerme creer que el error se ha ido. Una vez que las inspecciones se ejecutan nuevamente, el error regresa como un regalo que sigue dando.

Me salvé toda esa frustración mediante la desactivación de todas las inspecciones de JetBrains ( Editor> Inspections> desmarque JavaScript) Luego he instalado el plugin ESLint.

La inspección de las causas de que "método de la función sin resolver" puede desactivarse entrando a las inspecciones de JetBrains ( Editor> Inspections> JavaScript) y la búsqueda de "sin resolver Javascript" y apagar "la función Javascript sin resolver" y "variable de Javascript sin resolver"

Los maté a todos y he editado mi código sin problemas desde entonces.

Shanimal
fuente
3

Para WebStorm 2019.3 Archivo> Preferencias o Configuración> Idiomas y marcos> Node.js y NPM -> Habilitar asistencia de codificación para NodeJs

Tenga en cuenta que se incluyen los paquetes adicionales que desea utilizar.

kzncrda
fuente
2

Ok, aquí he visto muchas respuestas ya dadas, quiero agregar algunas más que están fijadas como función / método / advertencia de variable no resuelta.

Eso se resuelve "función o método no resuelto para 'requerir' y alguna otra advertencia"

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

Si aún ve este tipo de advertencia, variable no resuelta o algo así, puede deshabilitar manualmente estas advertencias de la siguiente manera.

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

y encontrará una lista y simplemente desmarcará la advertencia que desea deshabilitar y luego aplicar.

MD Alamin
fuente
0

Archivo-> Configuración-> Idiomas y marcos-> JavaScript

Instrucción

Dmitry Matrosov
fuente