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
skatsumata
źródło
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

Lena
źródło
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

Andrzej Rehmann
źródło
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”).

Zane Hooper
źródło
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 ...

M.Vanderlee
źródło
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"
  ]
TetraDev
źródło
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
10

W WebStorm 2018.3 nieco inny interfejs wprowadź opis zdjęcia tutaj

Siergiej Smolnikow
źródło
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

Konstantin Malikov
źródło
4

Rozwiązanie w Webstorm 2016.3

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

2) uruchom polecenie: npm install wymagają.js

GalBenEvgi
źródło
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.

Shanimal
źródło
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ć.

kzncrda
źródło
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ć.

Md Alamin
źródło
0

Plik-> Ustawienia-> Języki i struktury-> JavaScript

Instrukcja

Dmitrij Matrosow
źródło