Jak mogę naprawić ostrzeżenie WebStorm „Nierozwiązana funkcja lub metoda” dla „wymagają” (dodatek SDK do przeglądarki Firefox)


219

Używam WebStorm 7 do opracowywania dodatków SDK do Firefoksa .

WebStorm wyświetla ostrzeżenie: „Nierozwiązana funkcja lub metoda” dla require() .

Chcę pozbyć się ostrzeżenia.

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

UWAGA: Skonfigurowałem już bibliotekę JavaScript (refer / lib / sdk globals).

Środowisko:

  • WebStorm 7.0.2
  • Windows 7 64bit
  • Dodatek SDK do przeglądarki Firefox 1.15beta1

var pageMod = nowe wymaganie („sdk / page-mod”); może rozwiązać problem. Zwróć uwagę na „nowy” w kodzie
NBK

Miałem ten sam problem z WebStorm 8
Anthony O.

Odpowiedzi:


351

Czy masz na myśli, że require()problem nie został rozwiązany? Musisz dodać require.jsdo projektu lub włączyć Node.js Globalswstępnie zdefiniowaną bibliotekę w Ustawieniach / Językach i Frameworkach / JavaScript / Bibliotekach.

(Edytowana ścieżka ustawień przez @yurik)

W WebStorm 2016.x-2017.x: upewnij się, że biblioteka Core Node.js jest włączona Settings (Preferences) | Languages & Frameworks | Node.js and NPM

W IntelliJ 2018.3.2 przejdź do Settings (Preferences) | Languages & Frameworks | Node.js and NPMi włączCoding assistance for Node.js


Dziękuję Lena. i przepraszam za moją słabą znajomość języka angielskiego. (> _ <;) Chcę usunąć ostrzeżenie dotyczące edytora webstorm. (wykonanie skryptu nie stanowi problemu.) Firefox-Addon-SDK jest zgodny z commonjs, ale nie używa node.js. zdefiniowano metodę „wymagają” <sdkroot> /app-extension/bootstrap.js Ustawiłem bootstrap.js na Biblioteki zewnętrzne, ale nie wyczyściłem ostrzeżenia „nierozwiązane”. <kod> niech wymaga = cuddlefish.Require (moduł ładujący, moduł); function loadSandbox (uri) {let sandbox = ... sandbox.require = function (id) {return Object.freeze ({...}); }; zwrot piaskownicy; </code>
skatsumata

11
Przydatna odpowiedź! BTW, w mojej webstormie 9 Lokalizacja jest następująca: Język i frameworki -> JavaScript -> Biblioteki ; Innym podejściem jest wyszukiwanie „Bibliotek”
Paul Ho

1
W Webstorm 9 możesz także kliknąć prawym przyciskiem myszy „wymagaj” i wybrać „Użyj biblioteki JavaScript-> Node.js Globals”
Josh Noe,

Włącz wtyczkę NodeJS, jeśli na liście bibliotek brakuje „Node.js Globals”.
0x539,

1
FYI: Musiałem wyłączyć asystenta węzła, nieprawidłowe pamięci podręczne i ponownie uruchomić WebStorm, a następnie włączyć go ponownie, aby mógł działać. WebStorm 2018.3.5
Reactgular

226

Webstorm 11 i 2016.2.3

Włącz Node.js Core libraryw ustawieniach burzy.

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj


Chciałem tylko dodać, że miałem ten sam problem i chociaż moja podstawowa biblioteka była już włączona, przejście do ekranu ustawień wydawało się rozwiązać problem.
Rob Rose

1
nie działało dla mnie przy użyciu maszynopisu z najnowszą wersją node i burzy. Nadal szukamy rozwiązania dla nas angular2 people. Zastosowanie w definicji komponentustyles: [require('./app.component.css')]
Andre

Nadal mam błąd w błędzie kompilatora TS2304: Nie można znaleźć nazwy „wymagają”.
SuperUberDuper

@SuperUberDuper Powinieneś zamienić „wymaganie” na import {*} from 'node module' i podać "target": "CommonJS"w tsconfig.json
Bhoomtawath Plinsut

Działało, gdy tylko włączyłem go w preferencjach burzy (nie w ustawieniach projektu)
U_D

46

W PHPStorm jest to trochę łatwiejsze: możesz po prostu wyszukać NPM w ustawieniach lub:

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

Następnie kliknij przycisk włączania (najwyraźniej w nowych wersjach nazywa się to „Pomocą kodowania dla węzła”).


2
Nie było przycisku włączania, ale sprawdziłem [x] pomoc dla Node.js w zakresie kodowania i wydaje się, że rozpoznaje teraz wymaganie.
Dustin Graham

Dzięki za aktualizację Dustin, odpowiednio zaktualizowałem moją odpowiedź.
Zane Hooper

45

Po spędzeniu godziny na próbach uruchomienia tego przy użyciu wszystkich rozwiązań dostępnych w Internecie, to w końcu załatwiło sprawę!

Plik -> Unieważnij pamięć podręczną / Uruchom ponownie ...


2
To działało dla mnie z WebStrom 2017.2.4, aby rozwiązać problem, w którym Array.push został fałszywie wskazany jako metoda, która nie istniała.
Zgodny z POSIX

1
Pracowałem dla mnie po aktualizacji PhpStorm 2017.2.4 Numer kompilacji PS-172.4155.41 . Problem polegał na tym, że IDE zignorowało specyfikacje ES6.
Maximilian Fixl

13

Pracując z Intellj 2016, Angular2 i Typescript ... jedyną rzeczą, która działała dla mnie, było uzyskanie definicji maszynopisu dla NodeJS

Pobierz node.d.ts z ZdecydowanieTyped na GitHub

Lub po prostu uruchom:

npm install @types/node --save-dev

Następnie w tsconfig.json, dołącz

"types": [
     "node"
  ]

3
Dziękuję Ci! Czuję się, jakbym szukał wieków! Wystarczy zainstalować @ typy / węzeł uspokoił WebStorm; Później zobaczę o kompilatorze.
Kesarion

Dziękuję, to zadziałało dla mnie. Dla mnie to działało przy użyciu tutaj zaakceptowanej odpowiedzi, ale jakoś zaczęło się konfliktować, gdy dodałem nowe biblioteki. To naprawiło mój problem ponownie
viorel


5

Innym rozwiązaniem, które bardzo mi pomogło, jest aktualizacja wszystkich bibliotek lib w „Node.js i NPM”. Musisz tylko zaznaczyć wszystkie biblioteki i kliknąć niebieską strzałkę - „aktualizacja”wprowadź opis zdjęcia tutaj


4

Rozwiązanie w Webstorm 2016.3

1) kliknij ALT + F12 (otwórz treminal)

2) uruchom polecenie: npm install wymagają.js


4

Wyłącz inspekcje JetBrains i pobierz wtyczkę ESLint.

Jedyne, File | Invalidate caches and restartco dla mnie robi, to zresetowanie go na tyle długo, aby oszukać mnie, że błąd zniknął. Po ponownym uruchomieniu kontroli błąd wraca jak prezent, który wciąż daje.

Uratowałem siebie wszystko, frustracją, wyłączając wszystkie JetBrains inspekcje ( Editor> Inspectionsodznacz> JavaScript) Wtedy zainstalowany plugin ESLint.

Inspekcja powodująca „nierozwiązaną metodę funkcji” można wyłączyć, przechodząc do inspekcji JetBrains (Editor > Inspections> JavaScript) i szukając „Nierozwiązany Javascript” i wyłączenie „funkcji Nierozwiązane Javascript” i „zmienną Nierozwiązane Javascript”

Zabiłem ich wszystkich i od tego czasu bez trudu zredagowałem mój kod.


3

W przypadku pliku WebStorm 2019.3> Preferencje lub ustawienia> Języki i ramy> Node.js i NPM -> Włącz obsługę kodowania dla NodeJs

Pamiętaj, że zawarte są dodatkowe pakiety, których chcesz użyć.


2

Ok, tutaj widziałem już wiele odpowiedzi, chcę dodać więcej, które są naprawione nierozwiązane ostrzeżenie funkcji / metody / zmiennej.

Zostało to rozwiązane „nierozwiązana funkcja lub metoda„ wymagaj ”i jakieś inne ostrzeżenie”

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

Jeśli nadal widzisz tego typu ostrzeżenie, nierozwiązaną zmienną lub coś w tym rodzaju, możesz ręcznie wyłączyć te ostrzeżenia, postępując zgodnie z poniższymi instrukcjami.

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

a znajdziesz listę i po prostu odznaczone ostrzeżenie, które chcesz wyłączyć, a następnie zastosować.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.