Ionic Framework

Ionic 4: วิธีแก้ไขติดตั้ง cordova-res บน MacOS ไม่ได้

เรื่องที่เกี่ยวข้อง - cordova-res, Ionic Framework

หลังจาก Ionic CLI 5 เป็นต้นมา ส่วนที่ใช้ในการสร้างไฟล์ App Icon และ Splash Screen ได้แยกออกมาเป็น module แยกต่างหาก ไม่ได้รวมในโปรเจค Ionic ตั้งแต่เริ่มต้นครับ อาจจะทำให้หลายๆ คนสับสนพอควร

และเนื่องจากใน Workshop ล่าสุด พวกเราที่ใช้ MacOS รวมถึงพลเจอปัญหากับการที่ติดตั้ง cordova-resไม่ได้ ขอยกวิธีแก้มาที่นี้ครับ

อาการ

หลังจากเรารันคำสั่ง

sudo npm i -g cordova-res

จะเจอ error ประมาณนี้

Teerasej-MacBook-Pro:NextflowNote teerasejjiraphatchandej$ sudo npm i -g cordova-res
/usr/local/bin/cordova-res -> /usr/local/lib/node_modules/cordova-res/bin/cordova-res

> [email protected] install /usr/local/lib/node_modules/cordova-res/node_modules/sharp
> (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)

ERR! sharp EACCES: permission denied, mkdir '/Users/teerasejjiraphatchandej/.npm/_libvips'
info sharp Attempting to build from source via node-gyp but this may fail due to the above error
info sharp Please see https://sharp.pixelplumbing.com/page/install for required dependencies
gyp WARN EACCES user "nobody" does not have permission to access the dev dir "/Users/teerasejjiraphatchandej/Library/Caches/node-gyp/10.16.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/local/lib/node_modules/cordova-res/node_modules/sharp/.node-gyp"
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! configure error 
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/cordova-res/node_modules/sharp/.node-gyp'
gyp ERR! System Darwin 18.6.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/cordova-res/node_modules/sharp
gyp ERR! node -v v10.16.0
gyp ERR! node-gyp -v v5.0.2
gyp ERR! not ok 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `(node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/teerasejjiraphatchandej/.npm/_logs/2019-07-16T16_09_52_809Z-debug.log

เป็นอาการที่เกิดจากปัญหาของ Permission ใน MacOS รุ่นใหม่นั่นเองครับ เป็นรากปัญหาเดียวกับ ios-deploy

วิธีแก้

ให้รันคำสั่งนี้แทนครับ ซึ่งเป็นการเพิ่ม option --unsafe-permเข้าไปในคำสั่ง

sudo npm i -g cordova-res --unsafe-perm

จากนั้นเราก็สามารถรันคำสั่งติดตั้ง ได้ตามปกติ ไม่ติดปัญหาอะไรแล้วครับ

เปิดอบรมสร้าง Cross Platform Mobile Application ด้วย Ionic Framework

เหมาะสำหรับคนทำเว็บ, เริ่มต้น JavaScript ES6 และ Angular เข้าใจง่าย, ใช้ได้จริง

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

โปรหน้าฝน! เรียนรอบสด รับคอร์สออนไลน์มูลค่ากว่า 5800 บาทฟรี!

เริ่มต้นยุค AI ด้วยคอร์สฟรี และพรีเมี่ยม กับพล

หากชอบสิ่งที่พลเล่า เรื่องที่พลสอน สามารถสนับสนุนพลโดยการเข้าเรียนคอร์สออนไลน์ของพลนะคร้าบ

  • เข้าใจง่าย ใช้ได้จริง ออกแบบการสอนอย่างเข้าใจโดยโค้ชพล
  • มีคอร์สสำหรับคนใช้งานทั่วไป จนถึงเรียนรู้เพื่อใช้งานในสายอาชีพขั้นสูง
  • ทุกคอร์สมีใบประกาศณียบัตรรับรองหลังเรียนจบ

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

Allow All
Manage Consent Preferences
  • Always Active

Save