Làm cách nào tôi có thể sửa lỗi cảnh báo WebStorm Chức năng hoặc phương thức chưa được giải quyết.


219

Tôi đang sử dụng WebStorm 7 để phát triển SDK bổ trợ Firefox .

WebStorm hiển thị cảnh báo: "Hàm hoặc phương thức chưa được giải quyết" cho require().

Tôi muốn thoát khỏi cảnh báo.

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

LƯU Ý: Tôi đã định cấu hình thư viện JavaScript (tham chiếu / lib / sdk toàn cầu).

Môi trường:

  • WebStorm 7.0.2
  • Windows 7 64 bit
  • Firefox bổ trợ SDK 1.15beta1

var pageMod = new request ("sdk / page-mod"); có thể giải quyết vấn đề Lưu ý 'mới' trong mã
NBK

Tôi gặp vấn đề tương tự với WebStorm 8
Anthony O.

Câu trả lời:


351

Bạn có nghĩa require()là không được giải quyết? Bạn cần thêm require.jsvào dự án của mình hoặc bật Node.js Globalsthư viện được xác định trước trong Cài đặt / Ngôn ngữ và Khung / JavaScript / Thư viện.

(Đường dẫn cài đặt được chỉnh sửa bởi @yurik)

Trong WebStorm 2016.x-2017.x: đảm bảo rằng thư viện Node.js Core được bật trong Settings (Preferences) | Languages & Frameworks | Node.js and NPM

Trong IntelliJ 2018.3.2, hãy truy cập Settings (Preferences) | Languages & Frameworks | Node.js and NPMvà bậtCoding assistance for Node.js


Cảm ơn bạn Lena. và xin lỗi tiếng anh của tôi kém. (> _ <;) Tôi muốn dọn dẹp cảnh báo trên trình chỉnh sửa webstorm. (thực thi tập lệnh không có vấn đề gì.) Firefox-Addon-SDK tuân theo commonjs, nhưng không sử dụng node.js. Phương thức "yêu cầu" được xác định <sdkroot> /app-extension/bootstrap.js Tôi đặt bootstrap.js thành Thư viện bên ngoài, nhưng không xóa cảnh báo "chưa giải quyết". <code> let Yêu cầu = cuddlefish.Require (trình tải, mô-đun); hàm loadSandbox (uri) {let sandbox = ... sandbox.require = function (id) {return Object.freeze ({...}); }; trả lại hộp cát; </ code>
skatsumata

11
Câu trả lời hữu ích! BTW, trong webstorm 9 của tôi, Vị trí là: Ngôn ngữ & Khung -> Javascript -> Thư viện ; Một cách tiếp cận khác là tìm kiếm "Thư viện"
Paul Ho

1
Trong Webstorm 9, bạn cũng có thể nhấp chuột phải vào "yêu cầu" và chọn "Sử dụng Thư viện Javascript-> Globals Node.js"
Josh Noe

Kích hoạt plugin NodeJS nếu 'Node.js Globals' bị thiếu trong danh sách thư viện.
0x539

1
FYI: Tôi đã phải tắt nút hỗ trợ TẮT, bộ đệm không hợp lệ và khởi động lại WebStorm và sau đó bật lại để BẬT hoạt động. WebStorm 2018.3.5
Phản ứng

226

Bão 11 và 2016.2.3

Kích hoạt Node.js Core librarytrong cài đặt Webstorm.

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


Tôi chỉ muốn nói thêm rằng tôi có cùng một vấn đề và mặc dù thư viện lõi của tôi đã được bật, đi đến màn hình cài đặt dường như để khắc phục sự cố.
Rob Rose

1
Tôi đã không làm việc với tôi bằng cách sử dụng bản thảo với phiên bản mới nhất của nút và webstorm. Vẫn đang săn lùng một bản sửa lỗi cho chúng tôi angular2 người. Cách sử dụng bên trong một định nghĩa thành phầnstyles: [require('./app.component.css')]
Andre

Tôi vẫn gặp lỗi trong trình biên dịch lỗi TS2304: Không thể tìm thấy tên 'yêu cầu'.
SuperUberDuper

@SuperUberDuper Bạn nên thay thế 'yêu cầu' bằng import {*} from 'node module'và chỉ định "target": "CommonJS"bên trong tsconfig.json
Bhoomtawath Plinsut

Hoạt động ngay khi tôi kích hoạt nó trong tùy chọn Webstorm (không phải cài đặt dự án)
U_D

46

Trong PHPStorm, điều đó dễ dàng hơn một chút: bạn chỉ có thể tìm kiếm NPM trong cài đặt hoặc:

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

Sau đó nhấp vào nút bật (rõ ràng trong các phiên bản mới, nó được gọi là "Hỗ trợ mã hóa cho nút").


2
Không có nút kích hoạt, nhưng có [x] Hỗ trợ mã hóa cho Node.js mà tôi đã kiểm tra và dường như nó nhận ra yêu cầu ngay bây giờ.
Dustin Graham

Cảm ơn đã cập nhật Dustin, cập nhật câu trả lời của tôi cho phù hợp.
Zane Hooper

45

Sau khi dành một giờ cố gắng để làm việc này bằng cách sử dụng tất cả các giải pháp được tìm thấy trực tuyến, điều này cuối cùng đã thực hiện được mẹo!

Tệp -> Bộ nhớ cache không hợp lệ / Khởi động lại ...


2
Điều này đã làm việc với tôi với WebStrom 2017.2.4 để giải quyết vấn đề trong đó Array.push được chỉ định sai là phương thức không tồn tại.
POSIX tuân thủ

1
Đã làm việc cho tôi sau khi cập nhật PhpStorm 2017.2.4 Số bản dựng PS-172.4155.41 . Vấn đề là, IDE đã bỏ qua thông số kỹ thuật ES6.
Maximilian Fixl

13

Làm việc với Intellj 2016, Angular2 và Bản in ... điều duy nhất phù hợp với tôi là lấy Định nghĩa Bản thảo cho NodeJS

Nhận node.d.ts từ DefiniteTyped trên GitHub

Hoặc chỉ cần chạy:

npm install @types/node --save-dev

Sau đó, trong tsconfig.json, bao gồm

"types": [
     "node"
  ]

3
Cảm ơn bạn! Tôi cảm thấy như tôi đã tìm kiếm từ lâu! Chỉ cần cài đặt @ type / nút làm dịu WebStorm; Tôi sẽ xem về trình biên dịch sau.
Kesarion

Cảm ơn bạn, điều này đã làm việc cho tôi. Đối với tôi, nó được sử dụng để sử dụng câu trả lời được chấp nhận ở đây, nhưng bằng cách nào đó nó đã bắt đầu xung đột khi tôi thêm các thư viện mới. Điều này đã khắc phục vấn đề của tôi một lần nữa
viorel


5

Một giải pháp khác đã giúp tôi rất nhiều là cập nhật tất cả các lib trong "Node.js và NPM". Bạn chỉ cần đánh dấu tất cả các lib và nhấp vào mũi tên màu xanh - 'cập nhật'nhập mô tả hình ảnh ở đây


4

Giải pháp trên Webstorm 2016.3

1) nhấp vào ALT + F12 (mở run)

2) chạy lệnh: npm install allow.js


4

Vô hiệu hóa Kiểm tra JetBrains và nhận plugin ESLint.

Điều duy nhất File | Invalidate caches and restartlàm cho tôi là thiết lập lại nó đủ lâu để lừa tôi nghĩ rằng lỗi đã biến mất. Khi kiểm tra chạy lại, lỗi sẽ quay trở lại giống như một món quà không ngừng đưa ra.

Tôi lưu bản thân mình tất cả những gì thất vọng bằng cách tắt tất cả JetBrains kiểm tra ( Editor> Inspections> bỏ chọn JavaScript) Sau đó, tôi cài đặt plugin ESLint.

Việc kiểm tra gây ra "phương pháp chức năng Chưa giải quyết" có thể được tắt bằng cách vào JetBrains kiểm tra ( Editor> Inspections>JavaScript ) và tìm kiếm "Chưa giải quyết javascript" và tắt "Chưa giải quyết Javascript chức năng" và "biến Unresolved javascript"

Tôi đã giết tất cả chúng và đã chỉnh sửa mã rắc rối của tôi miễn phí kể từ đó.


3

Đối với Tệp WebStorm 2019.3> Tùy chọn hoặc Cài đặt> Ngôn ngữ & Khung> Node.js và NPM -> Kích hoạt xác nhận mã hóa cho NodeJs

Lưu ý rằng các gói bổ sung mà bạn muốn sử dụng được bao gồm.


2

Ok, ở đây tôi đã thấy rất nhiều câu trả lời đã được đưa ra, tôi muốn thêm một số câu trả lời chưa được giải quyết về chức năng / phương thức / cảnh báo biến.

Điều đó được giải quyết "chức năng hoặc phương thức chưa được giải quyết cho 'yêu cầu' và một số cảnh báo khác"

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

Nếu bạn vẫn thấy loại cảnh báo này, biến chưa được giải quyết hoặc đại loại như thế, bạn có thể vô hiệu hóa thủ công các cảnh báo này bằng cách làm theo.

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

và bạn sẽ tìm thấy một danh sách và chỉ cần bỏ chọn cảnh báo nào bạn muốn tắt và sau đó áp dụng.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.