Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

วิธีแก้ไขข้อผิดพลาด "cannot find module gulp-sass" ใน Gulp

วิธีแก้ไขข้อผิดพลาด  cannot find module gulp-sass  ใน Gulp

เมื่อรัน Gulp คุณอาจเห็นข้อผิดพลาด "cannot find module gulp-sass"

ข้อความนี้หมายถึง Gulp พยายามรันฟังก์ชันจากแพ็กเกจ gulp-sass แต่หาไม่เจอ

หากได้ข้อผิดพลาดนี้ นี่คือวิธีแก้ไขหลายวิธี:

ตรวจสอบโฟลเดอร์ node_modules

เมื่อติดตั้งแพ็กเกจ npm จะสร้างโฟลเดอร์ node_modules ในรากโปรเจกต์ และเพิ่มแพ็กเกจที่ติดตั้งลงใน package.json และ package-lock.json

คุณสามารถยืนยันได้ว่าแพ็กเกจติดตั้งแล้วโดยตรวจสอบว่ารายการอยู่ใน package และ package-lock.json และตรวจสอบโฟลเดอร์ node_modules ว่ามีโฟลเดอร์ย่อยของแพ็กเกจนั้นหรือไม่

สุดท้าย ให้แน่ใจว่าคุณรันเว็บไซต์หรือเว็บแอปจากโฟลเดอร์รากโปรเจกต์ และโฟลเดอร์รากมี node_modules เป็นโฟลเดอร์ย่อยโดยตรง หาก node_modules ไม่อยู่ตำแหน่งนั้น อาจก่อให้เกิดข้อผิดพลาดนี้

ติดตั้งโมดูล gulp-sass ด้วยตนเอง

หากไม่เห็นแพ็กเกจ gulp-sass ในโฟลเดอร์ node_modules หรือยังมีปัญหา ให้ลองติดตั้งแพ็กเกจใหม่

ขั้นแรก เปิด package.json และ package-lock.json ลบการอ้างอิง gulp-sass และ node-sass ที่เห็น ทำให้คุณติดตั้งเวอร์ชันล่าสุดของแพ็กเกจ

วิธีแก้ไขข้อผิดพลาด  cannot find module gulp-sass  ใน Gulp วิธีแก้ไขข้อผิดพลาด  cannot find module gulp-sass  ใน Gulp

จากนั้นรัน npm install gulp-sass หรือ npm install gulp-sass --save-dev เพื่อติดตั้งและบันทึกใน package.json Flag --save-dev จะเพิ่มแพ็กเกจในส่วน devDependencies ของ package.json

หากไม่ใส่ flag จะถูกเพิ่มในส่วน dependencies โดยเฉพาะถ้าทำงานท้องถิ่นอย่างเดียว ไม่สำคัญมากว่าจะใช้ส่วนไหน ขึ้นอยู่กับความชอบของคุณ

โปรดทราบว่านี้จะติดตั้งแพ็กเกจแบบ Local ในโฟลเดอร์โปรเจกต์ และเข้าถึงได้เฉพาะจากโปรเจกต์นั้น คุณสามารถติดตั้งแพ็กเกจแบบ Global ได้ด้วยการเพิ่ม flag -g เช่น npm install -g gulp-sass

อย่างไรก็ตาม ผมมักติดตั้งแพ็กเกจแบบ Local ต่อโปรเจกต์ ผมติดตั้ง gulp-cli แบบ Global แต่สิ่งอื่นๆ เก็บทั้งหมดไว้ Local

ลบและติดตั้งแพ็กเกจ npm ทั้งหมดใหม่

หากลบและติดตั้ง gulp-sass เพียงอย่างเดียวไม่ได้ผล ให้ลองลบและติดตั้งแพ็กเกจ npm ทั้งหมดใหม่

ขั้นแรก ให้แน่ใจว่าแพ็กเกจทั้งหมดที่โปรเจกต์ต้องการมีอยู่ใน package.json และ gulp-sass อยู่ใน package.json

จากนั้นลบโฟลเดอร์ node_modules โดยลบจากไฟล์เอกสาร หรือรัน rm node_modules บนบรรทัดคำสั่ง หากเจอข้อผิดพลาดหรือลบยาก ให้ลองติดตั้งแพ็กเกจ npm ชื่อ rimraf ช่วยลบ

ผมติดตั้ง rimraf แบบ Global บนคอมพิวเตอร์เพื่อรันจากไดเรกทอรีใดก็ได้ ติดตั้ง rimraf Global ด้วย npm install -g rimraf แล้วลองลบโฟลเดอร์ด้วย rimraf node_modules จากบรรทัดคำสั่งรากโปรเจกต์

หากยังมีปัญหาหรือได้ error เช่น node_modules\@types is not accessible อาจต้องปิด VS Code หรือ code editor ที่ใช้ก่อน แล้วลองลบโฟลเดอร์อีกครั้ง

เมื่อลบ node_modules สำเร็จแล้ว ให้รัน npm install จากรากโปรเจกต์เพื่อติดตั้งแพ็กเกจทั้งหมดที่ระบุไว้