¿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

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


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í


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


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


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

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


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í


4

Solución en Webstorm 2016.3

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

2) ejecuta el comando: npm install require.js


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.


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.


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.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.