Як я можу виправити попередження WebStorm "Нерозв’язана функція чи метод" для "вимагаю" (Firefox SDD-add-on SDK)


219

Я використовую WebStorm 7 для розробки SDK для додатків Firefox .

WebStorm показує попередження: "Нерозв’язана функція або метод" для require().

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

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

ПРИМІТКА: Я вже налаштував JavaScript-бібліотеку (див. / Lib / sdk globalals).

Середовище:

  • WebStorm 7.0.2
  • Windows 7 64bit
  • Додаток Firefox SDK 1.15beta1

var pageMod = new requ ("sdk / page-mod"); може вирішити питання. Помітьте «нове» у коді
NBK

У мене була така ж проблема з 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


Дякую, Лена. і шкода моєї англійської бідної. (Виконання сценарію не є проблемою.) Firefox-Addon-SDK відповідає commonjs, але не використовує node.js. Метод "вимагати", визначений <sdkroot> /app-extension/bootstrap.js Я встановив bootstrap.js на "Зовнішні бібліотеки", але не чітке "невирішене" попередження. <code> нехай вимагає = cuddlefish.Require (завантажувач, модуль); функція loadSandbox (uri) {нехай sandbox = ... sandbox.require = function (id) {return Object.freeze ({...}); }; повернути пісочницю; </code>
skatsumata

11
Корисна відповідь! BTW, в моєму штурмі 9, Місце розташування: Мова та рамки -> Javascript -> Бібліотеки ; Інший підхід - це пошук "Бібліотеки"
Пол Хо

1
У веб-штормі 9 ви також можете клацнути правою кнопкою миші на "вимагати" та вибрати "Використовувати бібліотеку Javascript -> Node.js Globals"
Josh Noe

Увімкніть плагін NodeJS, якщо 'Node.js Globals' відсутній у списку бібліотеки.
0x539

1
FYI: Мені довелося вимкнути допомогу у вузлі, недійсні кеші та перезапустити WebStorm, а потім увімкнути його, щоб він працював. WebStorm 2018.3.5
Реакційний

226

Веб-штурм 11 та 2016.2.3

Увімкнути Node.js Core libraryв налаштуваннях Webstorm.

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

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

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


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

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

У мене все ще є помилка в помилці компілятора TS2304: Не вдається знайти ім'я "вимагати".
SuperUberDuper

@SuperUberDuper Ви повинні замінити "вимагати" на import {*} from 'node module'та вказати "target": "CommonJS"всередині tsconfig.json
Bhoomtawath Plinsut

Працював, як тільки я ввімкнув це в налаштуваннях веб-штормів (не в налаштуваннях проекту)
U_D

46

У PHPStorm це трохи простіше: ви можете просто шукати NPM у налаштуваннях або:

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

Потім натисніть кнопку включення (мабуть, у нових версіях вона називається "Довідка з кодування для Вузла").


2
Не було кнопки увімкнення, але була [x] допомога з кодування для Node.js, яку я перевірив, і, здається, зараз розпізнавати потрібно.
Дастін Грем

Дякую за оновлення Дастін, відповідно оновив мою відповідь.
Зейн Хупер

45

Провівши годину, намагаючись змусити це працювати, використовуючи всі рішення, знайдені в Інтернеті, це нарешті зробило трюк!

Файл -> Недійсний кеш / Перезапуск ...


2
Це працювало для мене з WebStrom 2017.2.4, щоб вирішити проблему, коли Array.push неправдиво вказали як метод, який не існував.
сумісний з POSIX

1
Працював для мене після оновлення PhpStorm 2017.2.4 Номер збірки PS-172.4155.41 . Проблема полягала в тому, що IDE ігнорував специфікації ES6.
Максиміліан Фіксл

13

Робота з Intellj 2016, Angular2 та Typescript ... єдине, що працювало для мене, це отримати визначення Typescript для NodeJS

Отримайте node.d.ts від DefinitelyTyped на GitHub

Або просто запустіть:

npm install @types/node --save-dev

Потім у tsconfig.json включайте

"types": [
     "node"
  ]

3
Спасибі! Я відчуваю, що шукав віки! Просто встановлення @ type / node заспокоїло WebStorm; Про компілятор я побачу пізніше.
Кесаріон

Дякую, це працювало для мене. Для мене він працював, використовуючи прийняту відповідь тут, але це якось почало суперечити, коли я додав нові бібліотеки. Це знову
viorel


5

Ще одне рішення, яке мені дуже допомогло, - оновити всі lib у "Node.js та NPM". Потрібно просто позначити всі вії та натиснути синю стрілку - "оновити"введіть тут опис зображення


4

Рішення про веб-шторм 2016.3

1) натисніть на ALT + F12 (відкритий тремін)

2) запустіть команду: npm install Requ.js


4

Вимкніть інспекції JetBrains та отримайте плагін 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 -> Увімкнути призначення кодування для NodeJs

Зауважте, що додаткові пакети, які ви хочете використовувати, включені.


2

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

Це вирішено "невирішеною функцією або методом" вимагати "та деяким іншим попередженням"

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.