Как я могу исправить предупреждение WebStorm «Неразрешенная функция или метод» для «требуется» (Firefox Add-on SDK)


219

Я использую WebStorm 7 для разработки дополнений Firefox SDK .

WebStorm показывает предупреждение: «Неразрешенная функция или метод» для require().

Я хочу избавиться от предупреждения.

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

ПРИМЕЧАНИЕ: я уже настроил JavaScript-библиотеку (см. Глобальные / lib / sdk).

Окружающая среда:

  • WebStorm 7.0.2
  • Windows 7 64bit
  • Firefox SDK 1.15beta1 дополнения

var pageMod = new require ("sdk / page-mod"); может решить проблему. Обратите внимание на «новое» в коде
НБК

У меня была такая же проблема с WebStorm 8
Энтони О.

Ответы:


351

Вы имеете в виду, что require()это не решено? Вам нужно либо добавить require.jsв свой проект, либо включить Node.js Globalsпредопределенную библиотеку в меню «Настройки» / «Языки и рамки» / «JavaScript» / «Библиотеки».

(Отредактированы настройки пути @yurik)

В WebStorm 2016.x-2017.x: убедитесь, что базовая библиотека Node.js включена в Settings (Preferences) | Languages & Frameworks | Node.js and NPM

В IntelliJ 2018.3.2 перейдите Settings (Preferences) | Languages & Frameworks | Node.js and NPMи включитеCoding assistance for Node.js


Спасибо, Лена. и извините, мой английский, бедный. (> _ <;) Я хочу убрать предупреждение в webstorm-editor. (Выполнение сценария не является проблемой.) Firefox-Addon-SDK соответствует commonjs, но не использует node.js. Определен метод «require» <sdkroot> /app-extension/bootstrap.js Я установил bootstrap.js для внешних библиотек, но не ясно «нерешенное» предупреждение. <code> let require = cuddlefish.Require (загрузчик, модуль); function loadSandbox (uri) {let sandbox = ... sandbox.require = function (id) {return Object.freeze ({...}); }; обратная песочница; </ code>
скатсумата

11
Полезный ответ! Кстати, в моем веб-шторме 9, расположение: Язык и рамки -> Javascript -> Библиотеки ; Другой подход заключается в поиске «Библиотеки»
Пол Хо

1
В Webstorm 9 вы также можете щелкнуть правой кнопкой мыши на «require» и выбрать «Use Javascript Library-> Node.js Globals»
Джош Ноу,

Включите плагин NodeJS, если «Node.js Globals» отсутствует в списке библиотек.
0x539

1
К вашему сведению: мне пришлось выключить вспомогательную систему узлов, отключить кэши и перезапустить WebStorm, а затем снова включить, чтобы он заработал. WebStorm 2018.3.5
Reactgular

226

Веб-буря 11 и 2016.2.3

Включить Node.js Core libraryв настройках Webstorm.

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь


Я просто хотел добавить, что у меня была та же проблема, и хотя моя базовая библиотека уже была включена, переход к экрану настроек, казалось, решил проблему.
Роб Роуз

1
у меня не работало использование машинописи с последней версией узла и веб-шторма. Все еще в поисках исправления для нас angular2 людей. Использование внутри определения компонентаstyles: [require('./app.component.css')]
Andre

У меня все еще есть ошибка в ошибке компилятора TS2304: не удается найти имя 'require'.
SuperUberDuper

@SuperUberDuper Вы должны заменить 'require' на import {*} from 'node module'и указать "target": "CommonJS"внутри tsconfig.json
Bhoomtawath Plinsut

Сработало, как только я включил его в настройках Webstorm (не в настройках проекта)
U_D

46

В PHPStorm это немного проще: вы можете просто найти NPM в настройках или:

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

Затем нажмите кнопку включения (по-видимому, в новых версиях она называется «Помощь при кодировании для узла»).


2
Не было кнопки включения, но была [x] помощь в кодировании для Node.js, которую я проверил, и она, кажется, распознает require сейчас.
Дастин Грэм

Спасибо за обновление Дастин, обновил мой ответ соответственно.
Зейн Хупер

45

Потратив час, пытаясь заставить его работать, используя все решения, найденные в Интернете, это, наконец, сработало!

File -> Invalidate Caches / Restart ...


2
Это помогло мне с WebStrom 2017.2.4 решить проблему, когда Array.push был ошибочно указан как метод, который не существует.
POSIX-совместимый

1
Работал у меня после обновления PhpStorm 2017.2.4 Build number PS-172.4155.41 . Проблема была в том, что IDE игнорировала спецификации ES6.
Максимилиан Фиксл

13

Работа с Intellj 2016, Angular2 и Typescript ... единственное, что мне помогло, это получить определения Typescript для NodeJS

Получите node.d.ts из DefinitiveTyped на GitHub

Или просто запустите:

npm install @types/node --save-dev

Затем в tsconfig.json включите

"types": [
     "node"
  ]

3
Спасибо! Я чувствую, что я искал целую вечность! Просто установка @ types / node успокоила WebStorm; Я посмотрю о компиляторе позже.
Кесарион

Спасибо, это сработало для меня. Для меня это работало с использованием принятого ответа здесь, но это как-то начало конфликтовать, когда я добавил новые библиотеки. Это снова
решило


5

Еще одно решение, которое мне очень помогло, - обновить все библиотеки в "Node.js and NPM". Вам нужно просто отметить все библиотеки и нажать синюю стрелку - «обновить»введите описание изображения здесь


4

Решение на Webstorm 2016.3

1) нажмите ALT + F12 (открыть треминал)

2) выполните команду: npm install require.js


4

Отключите JetBrains Inspections и получите плагин ESLint.

Единственное, что File | Invalidate caches and restartделает для меня, это сбрасывает его достаточно долго, чтобы заставить меня думать, что ошибка исчезла. Как только проверки повторяются, ошибка возвращается как подарок, который продолжает давать.

Я спас себя все , что разочарование, отключив все JetBrains проверки ( Editor> Inspections> снятия выделенияJavaScript ) Затем я установил плагин ESLint.

Проверку , что приводит к «неразрешенным методам функции» можно отключить, перейдя в JetBrains проверок ( Editor> Inspections>JavaScript ) и поиск «Unresolved Javascript» и выключая «функцию Нерешенные Javascript» и «переменную Нерешенные Javascript»

Я убил их всех и с тех пор редактировал мой код без проблем.


3

Для WebStorm 2019.3 Файл> Параметры или Настройки> Языки и рамки> Node.js и NPM -> Включить поддержку кодирования для NodeJ

Обратите внимание, что дополнительные пакеты, которые вы хотите использовать, включены.


2

Хорошо, здесь я уже видел много ответов, я хочу добавить еще несколько, которые исправляют неразрешенные функции / методы / переменные предупреждения.

Это решается "неразрешенная функция или метод для 'require' и некоторых других предупреждений"

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

Если вы все еще видите предупреждение такого типа, неразрешенную переменную или что-то подобное, вы можете вручную отключить эти предупреждения, выполнив следующие действия.

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

и вы найдете список и просто не отметите, какое предупреждение вы хотите отключить, а затем применить.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.