สิ่งที่ทำให้เกิดข้อผิดพลาดนี้ -“ ข้อผิดพลาดร้ายแรง: ไม่สามารถหาเสียงฮึดฮัดท้องถิ่น”


370

ฉันลบ grunt เวอร์ชั่นเก่าก่อนจากนั้นฉันก็ติดตั้ง grunt เวอร์ชั่นใหม่แล้วก็พบข้อผิดพลาดนี้:

D: \ www \ grunt-test \ grunt grunt-cli: อินเตอร์เฟสบรรทัดคำสั่ง grunt (v0.1.4)

ข้อผิดพลาดร้ายแรง: ไม่สามารถหาเสี้ยงฮึดฮัดแสดงความไม่พอใจในท้องถิ่น

หากคุณเห็นข้อความนี้แสดงว่าไม่พบ Gruntfile หรือไม่ได้ติดตั้ง Grunt ไว้ในโครงการของคุณ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้งและกำหนดค่า grunt โปรดดูที่คู่มือเริ่มต้นใช้งาน: http://gruntjs.com/getting-started

เป็นเพราะไม่มีการอ้างอิงถึงเสียงฮึดฮัดในเส้นทางของระบบของฉัน? หรืออย่างอื่น? ฉันพยายามติดตั้งใหม่สองสามครั้งแล้ว


6
คุณติดตั้งทั่วโลกหรือไม่ npm install grunt -g
elclanrs

1
คุณมีGruntfile.jsรากของโครงการของคุณหรือไม่
Simon Boudrias

6
@ Garreh ไม่นานมานี้ แต่ลองใช้งานnpm install grunt --save-devจากเทอร์มินัล package.jsonนี้ควรเพิ่มเวอร์ชันล่าสุดที่คุณ
Romain

233
อ๊ะมีสิ่งนี้ด้วยโครงการที่เพิ่งเช็คเอาต์ เพียงแค่ต้องทำnpm install!
poshaughnessy

6
ติดตั้ง nmp - ติดตั้งการพึ่งพาในโฟลเดอร์ node_modules ท้องถิ่น
poorva

คำตอบ:


291

ฉันคิดว่าคุณไม่มีgrunt.jsไฟล์ในไดเรกทอรีโครงการของคุณ การใช้งานซึ่งจะช่วยให้คุณเลือกเช่นgrunt:init jQuery, node,commonjsเลือกสิ่งที่คุณต้องการจากนั้นดำเนินการต่อ มันใช้งานได้จริง สำหรับข้อมูลเพิ่มเติมสามารถเยี่ยมชมนี้

ทำเช่นนี้:

 1. npm install -g grunt
 2. grunt:init  ( you will get following options ):
      jquery: A jQuery plugin
      node: A Node module
      commonjs: A CommonJS module
      gruntplugin: A Grunt plugin
      gruntfile: A Gruntfile (grunt.js)
 3 .grunt init:jquery (if you want to create a jQuery related project.).

มันควรจะทำงาน

โซลูชันสำหรับ v1.4:

1. npm install -g grunt-cli
2. npm init
   fill all details and it will create a package.json file.
3. npm install grunt (for grunt dependencies.)

แก้ไข: โซลูชันที่อัปเดตสำหรับเวอร์ชันใหม่:

 npm install grunt --save-dev

2
รุ่นนี้จะต้องเป็นรุ่นเก่า (v0.3) ในวันนี้ฉันไม่ได้เปิดใช้งานและติดตั้ง grunt ใหม่ (v0.4) ที่เรียกว่า Grunt-CLI.something มีการเปลี่ยนแปลง ..
Ryan Yiada

29
ปัจจุบันnpm install gruntติดตั้ง grunt 0.3.x คุณจะต้องทำการติดตั้ง `npm ติดตั้ง grunt@0.4 'ติดตั้งในพื้นที่ติดตั้งเวอร์ชั่นของ grunt ที่จำเป็นสำหรับ grunt-cli
Jack

6
ฉันหวังว่าขั้นตอนการติดตั้ง Grunt นั้นจะอยู่ที่ @ 0.4 จับมือฉันพยายามคิดสิ่งนี้จนกระทั่งฉันพบความคิดเห็นของคุณ
cnp

2
npm install grunt --save-devทำเพื่อฉัน
Vinicius Pinto

6
grunt-cliควรติดตั้งทั่วโลก แต่คาดว่าคุณจะมีการติดตั้งgrunt.jsในโครงการของคุณ สิ่งนี้อนุญาตให้แต่ละโครงการใช้ grunt เวอร์ชั่นอื่น ฉันมักจะใช้ NPM กับแฟ้ม package.json ในการติดตั้ง grunt.js ทั้งหมดอื่น ๆ ทำเสียงฮึดฮัด conribs ฯลฯ
เฮนรี่

164

ติดตั้ง Grunt ใน node_modules มากกว่าแบบโกลบอล

Unable to find local Grunt น่าจะหมายความว่าคุณได้ติดตั้ง Grunt ทั่วโลก

Grunt CLI ยืนยันว่าคุณติดตั้ง grunt ในไดเร็กทอรี node_modules โลคัลดังนั้น Grunt นั้นเป็นโลคัลสำหรับโปรเจ็กต์ของคุณ

สิ่งนี้จะล้มเหลว:

npm install -g grunt

ทำสิ่งนี้แทน:

npm install grunt --save-dev

83

ทำ

npm install

เพื่อติดตั้ง Grunt ภายใน./node_modules(และทุกอย่างอื่นที่ระบุในpackage.jsonไฟล์)


4
ฉันทำเช่นนั้นเป็นคนโง่ฉันลืมรันคำสั่งนี้หลังจากดึง repo ของโปรเจ็กต์ใหม่ไปยัง mac ..... : /
neoswf

1
ทำไมต้องมี grunt ถึงต้องติดตั้งแบบโลคัลเนื่องจากเครื่องมือบรรทัดคำสั่งสามารถอยู่ทั่วโลกได้?
Mike M

1
@MikeM บางครั้งคุณต้องในของคุณnode_modules/.bin PATHนอกจากนี้ในท้องถิ่นและทั่วโลกสามารถเป็นรุ่นที่แตกต่างกัน
Klas Mellbourn

ในกรณีของฉันมันเป็นความผิดของ NetBeans บางครั้งมันขัดข้องโครงการของฉันเมื่อฉันทำgit stashในเครื่องมือภายนอกที่นี่มันลบบางโมดูลออกnode_modulesและทุกอย่างหยุดทำงาน (และทำงานได้ดีมาก่อน) หลังจากnpm installทำงานได้ดีอีกครั้ง
Wirone

26

หากคุณมีไฟล์package.jsonอยู่ในโครงการและมีไฟล์ที่gruntต้องพึ่งพา

  "devDependencies": {
    "grunt": "~0.4.0",

จากนั้นคุณสามารถเรียกใช้npm installเพื่อแก้ไขปัญหา


5

ฉันทำผิดพลาดในการติดตั้งบางแพ็กเกจโดยใช้ sudo และอื่น ๆ ที่ไม่มีสิทธิ์นี่เป็นการแก้ไขปัญหาของฉัน

sudo chown -R $(whoami) $HOME/.npm

หวังว่าจะช่วยใครบางคน


5

มันบอกว่าคุณไม่มีท้องถิ่นgruntลอง:

npm install grunt

(โดยไม่ต้องมี-gมันท้องถิ่นgrunt )

แม้ว่าจะไม่เกี่ยวข้องโดยตรง แต่ให้แน่ใจว่าคุณมีGruntfile.jsในโฟลเดอร์ปัจจุบันของคุณ


4

อาจเป็นปัญหาเล็กน้อยที่นี่ขึ้นอยู่กับรุ่นของ grunt ที่ใช้ Grunt เวอร์ชั่นใหม่ระบุว่าคุณมีไฟล์ชื่อจริงGruntfile.js(แทนที่จะเป็นไฟล์เก่า)grunt.js )

คุณควรgrunt-cliจะติดตั้งเครื่องมือทั่วโลก (ซึ่งทำได้ผ่านnpm install -g grunt-cli) สิ่งนี้ช่วยให้คุณสามารถเรียกใช้จริงgruntคำสั่งจากบรรทัดคำสั่งได้

ประการที่สองตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง grunt ในเครื่องสำหรับโครงการของคุณ หากคุณเห็นว่าคุณpackage.jsonไม่มีสิ่งใด"grunt": "0.4.5"ในนั้นคุณควรทำnpm install grunt --saveในไดเรกทอรีโครงการของคุณ


3

ฉันต้องรันคำสั่งต่อไปนี้บน Ubuntu เพื่อแก้ปัญหานี้ (ฉันรู้ว่าเสียงฮึดฮัดเป็นเวลา 1 ชั่วโมง):

sudo npm install -g grunt
sudo npm install -g grunt-cli

cd /usr/local/bin
# current symlink points to ../lib/node_modules/grunt/bin/grunt*
sudo rm /usr/local/bin/grunt
sudo ln -s ../lib/node_modules/grunt-cli/bin/grunt* grunt

มันสกปรก แต่มันเป็นทางออกเดียวที่ฉันพบ ... :(


2

ไม่มีข้อใดถูกใช้งานได้สำหรับฉันเพราะฉันทำเสียงฮึดฮัดติดตั้งทั่วโลก (แนะนำในหลายคำตอบแปลก ๆ ) และนั่นก็เลอะทุกอย่าง นี่คือสิ่งที่ทำงาน:

npm uninstall -g grunt
npm install

ตอนนี้เพิ่งติดตั้งเสียงฮึดฮัดท้องถิ่นและใช้งานได้สำหรับฉัน


0

เป็นเรื่องใหม่ที่จะทำเสียงฮึดฮัดและตั้งค่าฉันกำลังทำงาน (อาจจะโง่) โครงการน่ากลัวของฉัน / โฟลเดอร์จาก Google Drive เพื่อให้ฉันสามารถเข้าถึงรหัส / สร้างเดียวกันจากแล็ปท็อปหรือเวิร์กสเตชันของฉัน

มีการซิงโครไนซ์ที่ค่อนข้างยุติธรรมของโฟลเดอร์ nodes_modules กลับไปที่ Google Drive และดูเหมือนว่ามีข้อขัดแย้งในบางจุดและโฟลเดอร์ / nodes_modules / grunt ถูกเปลี่ยนชื่อเป็น / nodes_modules / grunt (1)

เปลี่ยนชื่อมันกลับโดยการลบ (1) ดูเหมือนจะแก้ไขให้ฉัน


ทำไมคุณไม่ใช้ GIT
hmrc87

ฉันไม่ต้องการติดตาม / เปลี่ยนรุ่นและพยายามที่จะไม่รักษาการติดตั้ง grunt แยกกันสองตัว แต่สถานการณ์ด้านบนเป็นปัญหาค่อนข้างมากดังนั้นฉันจึงย้ายไปยัง GitHub แล้ว
LJT


0

ฉันมีปัญหาเดียวกันใน Vagrant

ฉันใช้ sudo เพื่อรันคำสั่งเพื่อติดตั้ง

sudo npm install -g grunt-cli

มันใช้งานได้สำหรับฉัน


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