ฉันจะแก้ไขคำเตือน WebStorm ได้อย่างไร“ ฟังก์ชั่นหรือวิธีการที่ไม่ได้แก้ไข” สำหรับ“ ต้องการ” (Firefox Add-on SDK)


219

ฉันใช้WebStorm 7 สำหรับFirefox Add-on SDKพัฒนา

WebStorm แสดงคำเตือน: "ฟังก์ชั่นได้รับการแก้ไขหรือวิธีการ" require()สำหรับ

ฉันต้องการกำจัดคำเตือน

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

หมายเหตุ: ฉันได้กำหนดค่า JavaScript-library แล้ว (ดู / lib / sdk globals)

สิ่งแวดล้อม:

  • WebStorm 7.0.2
  • Windows 7 64 บิต
  • Firefox Add-on SDK 1.15beta1

var pageMod = ใหม่ต้องการ ("sdk / page-mod"); อาจแก้ปัญหาได้ สังเกตว่า 'ใหม่' ในรหัส
NBK

ฉันมีปัญหาเดียวกันกับ WebStorm 8
Anthony O.

คำตอบ:


351

คุณหมายความrequire()ว่าไม่ได้รับการแก้ไขหรือไม่ คุณต้องเพิ่มrequire.jsโครงการของคุณหรือเปิดใช้งานNode.js Globalsไลบรารีที่กำหนดไว้ล่วงหน้าในการตั้งค่า / ภาษาและกรอบงาน / JavaScript / ไลบรารี

(เส้นทางการตั้งค่าที่แก้ไขโดย @yurik)

ใน WebStorm 2016.x-2017.x: ตรวจสอบให้แน่ใจว่าเปิดใช้งานไลบรารี Node.js Core แล้ว 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 "ต้องการ" วิธีการที่กำหนดไว้ <sdkroot> /app-extension/bootstrap.js ฉันตั้ง bootstrap.js เป็น External Libraries แต่ไม่ได้ล้างคำเตือน "unresolved" <code> อนุญาตต้องการ = cuddlefish.Require (ตัวโหลด, โมดูล); ฟังก์ชั่น loadSandbox (uri) {ให้ sandbox = ... sandbox.require = ฟังก์ชั่น (id) {return Object.freeze ({... }); }; คืน sandbox </code>
skatsumata

11
คำตอบที่เป็นประโยชน์! BTW ใน webstorm ของฉัน 9 ตำแหน่งคือ: ภาษาและกรอบ -> Javascript -> ไลบรารี ; อีกวิธีคือการค้นหา "Libraries"
Paul Ho

1
ใน Webstorm 9 คุณสามารถคลิกขวาที่ "ต้องการ" และเลือก "ใช้ Javascript Library-> Node.js Globals"
Josh Noe

เปิดใช้งานปลั๊กอิน NodeJS หาก 'Node.js Globals' หายไปจากรายการไลบรารี
0x539

1
FYI: ฉันต้องปิดโหนดของฉันช่วยปิดแคชที่ไม่ถูกต้องและรีสตาร์ท WebStorm จากนั้นเปิดใหม่อีกครั้งเพื่อให้ทำงานได้ WebStorm 2018.3.5
ซ้ำ

226

Webstorm 11 และ 2016.2.3

เปิดใช้งานNode.js Core libraryในการตั้งค่า Webstorm

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


ฉันแค่อยากจะเพิ่มว่าฉันมีปัญหาเดียวกันและถึงแม้ว่าห้องสมุดหลักของฉันเปิดใช้งานแล้วไปที่หน้าจอการตั้งค่าดูเหมือนจะแก้ไขปัญหาได้
Rob Rose

1
ไม่ทำงานสำหรับฉันโดยใช้ typescript กับโหนดและ webstorm เวอร์ชันล่าสุด ยังคงตามล่าหาการแก้ไขสำหรับเรา angular2 คน การใช้งานภายในการกำหนดองค์ประกอบstyles: [require('./app.component.css')]
Andre

ฉันยังมีข้อผิดพลาดในข้อผิดพลาดของคอมไพเลอร์ TS2304: ไม่พบชื่อ 'ต้องการ'
SuperUberDuper

@SuperUberDuper คุณควรแทนที่ 'ต้องการ' ด้วยimport {*} from 'node module'และระบุ"target": "CommonJS"ในtsconfig.json
Bhoomtawath Plinsut

ทำงานทันทีที่ฉันเปิดใช้งานในการตั้งค่า Webstorm (ไม่ใช่การตั้งค่าโครงการ)
U_D

46

ใน PHPS รูปแบบมันง่ายกว่านิดหน่อย: คุณสามารถค้นหา NPM ในการตั้งค่าหรือ:

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

จากนั้นคลิกปุ่มเปิดใช้งาน (เห็นได้ชัดในเวอร์ชันใหม่จะเรียกว่า "ความช่วยเหลือการเข้ารหัสสำหรับโหนด")


2
ไม่มีปุ่มเปิดใช้งาน แต่มี [x] ความช่วยเหลือในการเขียนโค้ดสำหรับ Node.js ที่ฉันตรวจสอบและดูเหมือนว่าการรับรู้ต้องการตอนนี้
ดัสตินเกรแฮม

ขอบคุณสำหรับการอัพเดตดัสตินอัพเดทคำตอบของฉันตามนั้น
Zane Hooper

45

หลังจากใช้เวลาหนึ่งชั่วโมงเพื่อพยายามทำให้มันใช้งานได้โดยใช้วิธีแก้ปัญหาทั้งหมดที่พบทางออนไลน์

ไฟล์ -> ทำให้แคช / รีสตาร์ทไม่ถูกต้อง ...


2
สิ่งนี้ใช้ได้กับฉันกับ WebStrom 2017.2.4 เพื่อแก้ไขปัญหาที่ Array.push ถูกระบุว่าเป็นวิธีการที่ไม่มีอยู่จริง
เป็นไปตามมาตรฐาน POSIX

1
ทำงานให้ฉันหลังจากการปรับปรุงPhpStorm 2017/02/04จำนวนรูปร่างPS-172.4155.41 ปัญหาคือ IDE ไม่สนใจข้อมูลจำเพาะ ES6
Maximilian Fixl

13

การทำงานกับ Intellj 2016, Angular2 และ Typescript ... สิ่งเดียวที่ทำงานได้สำหรับฉันคือการได้รับนิยาม typescript สำหรับ NodeJS

รับ node.d.ts จาก DefinitelyTyped บน GitHub

หรือเพียงแค่เรียกใช้:

npm install @types/node --save-dev

จากนั้นใน tsconfig.json รวมถึง

"types": [
     "node"
  ]

3
ขอบคุณ! ฉันรู้สึกเหมือนกำลังค้นหาวัยอยู่! เพียงแค่ติดตั้ง @ types / node ทำให้สงบลง WebStorm; ฉันจะดูเกี่ยวกับคอมไพเลอร์ในภายหลัง
Kesarion

ขอบคุณมันใช้งานได้สำหรับฉัน สำหรับฉันมันเคยทำงานโดยใช้คำตอบที่ยอมรับได้ที่นี่ แต่มันเริ่มขัดแย้งกันบ้างเมื่อฉันเพิ่มห้องสมุดใหม่ การแก้ไขปัญหานี้ของฉันอีกครั้ง
Viorel


5

โซลูชันอื่นที่ช่วยฉันได้มากคือการอัปเดต libs ทั้งหมดใน "Node.js และ NPM" คุณต้องทำเครื่องหมาย libs ทั้งหมดแล้วคลิกลูกศรสีน้ำเงิน - 'update'ป้อนคำอธิบายรูปภาพที่นี่


4

วิธีแก้ปัญหาบน Webstorm 2016.3

1) คลิกที่ ALT + F12 (เปิดแบบสั่น)

2) เรียกใช้คำสั่ง: npm install require.js


4

ปิดใช้งานการตรวจสอบ JetBrains และรับปลั๊กอิน ESLint

สิ่งเดียวที่File | Invalidate caches and restartทำให้ฉันรีเซ็ตได้นานพอที่จะหลอกให้ฉันคิดว่าข้อผิดพลาดหายไป เมื่อการตรวจสอบทำงานอีกครั้งข้อผิดพลาดจะกลับมาเหมือนของขวัญที่มอบให้

ฉันบันทึกทุกสิ่งที่ตัวเองแห้วโดยการปิดทั้งหมด JetBrains การตรวจสอบ ( Editor> Inspections> ยกเลิกการเลือกJavaScript) จากนั้นผมติดตั้งปลั๊กอิน ESLint

การตรวจสอบว่าสาเหตุที่ "วิธีการฟังก์ชั่นได้รับการแก้ไข" สามารถปิดได้โดยไปที่การตรวจสอบ JetBrains ( Editor> Inspections> 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.  

และคุณจะพบรายการและยกเลิกการเลือกสิ่งเตือนที่คุณต้องการปิดใช้งานจากนั้นนำไปใช้


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.