Grunt Watch ไม่ทำงานกับฐานไฟล์ที่ตั้งค่าเป็นไดเรกทอรีย่อย

ฉันมีปัญหาที่ Grunt Watch ไม่ทำงานกับไดเรกทอรีย่อยของฉันโดยใช้ Grunt นี่คือการตั้งค่าไดเรกทอรีของฉัน:

/home
  --/repos
      --/common
        --/node_modules
        -- gruntfile.js
        -- package.json

และฉันได้ตั้งค่าฐานด้วยตนเองเป็นโฮมไดเร็กตอรี่ใน gruntfile ของฉัน:

grunt.file.setBase('../../');

ฉันต้องการให้ไฟล์ gruntfile ของฉันอยู่ในไดเร็กทอรีนี้เพื่อทำงานร่วมกับผู้อื่นในทีมของฉันและไม่ใช้ไฟล์ grunt หลายไฟล์

การเรียกใช้ 'grunt' ทำงานได้ดี อย่างไรก็ตาม เมื่อฉันเปิดใช้งาน Grunt Watch ฉันได้รับข้อผิดพลาดเมื่อฉันอัปเดตไฟล์:

Waiting...OK
>> File "repos/common/js/controllers/UserCtrl.js" changed.

grunt-cli: The grunt command line interface. (v0.1.13)

Fatal error: Unable to find local grunt.

นี่คือส่วนการดูของ gruntfile ของฉัน:

watch: {

  // js
  js: {
    files: [
      'js/*.js',
      'js/controllers/*.js',
      'js/services/*.js',
      'js/lib/*.js',
      'm/js/*.js',
      'm/js/controllers/*.js',
      'm/js/services/*.js',
      'm/js/lib/*.js',
      'repos/common/js/controllers/*.js',
      'repos/common/js/services/*.js',
      'repos/common/js/lib/*.js',
    ],
    tasks: ['concat']
  },

  // css
  css: {
    files: [
      'repos/common/less/*.less',
      'm/less/*.less',
      'css/*.css',
      'repos/common/css/lib/*.css',
    ],
    tasks: ['newer:less', 'newer:cssmin', 'newer:concat_css']
  }
}

นี่มันอะไรกัน ฉันไม่ได้มาที่นี่เหรอ? ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก!


person boardlemur    schedule 13.10.2014    source แหล่งที่มา


คำตอบ (1)


คุณพลาดการติดตั้งโมดูลฮึดฮัด

grunt-cli เป็นโมดูลที่แตกต่างจาก grunt จริง ฉันคิดว่าคุณควรติดตั้ง grunt (นั่นคือสิ่งที่หมายถึงข้อความแสดงข้อผิดพลาดในเครื่อง) ที่ไดเร็กทอรีในเครื่องหรือสูงกว่าที่ซึ่ง gruntfile.js ของคุณตั้งอยู่

person Tuan    schedule 13.10.2014
comment
อืม. ฉันทำอย่างนั้นแต่ยังคงมองหาไฟล์ gruntfile ของฉันอยู่ ฉันควรชี้แจงว่าฉันกำลังพยายามเก็บไฟล์ gruntfile ไว้ในไดเร็กทอรี repo ทั่วไป ถ้าฉันติดตั้ง grunt ในโฮมไดเร็กตอรี่ ฉันจะต้องเก็บ gruntfile ไว้ตรงนั้นใช่ไหม? หรือมีวิธีใดที่ฉันสามารถชี้ไปที่ home/repos/common/gruntfile.js? - person boardlemur; 14.10.2014
comment
ฉันยังใหม่กับเสียงฮึดฮัด ฉันคิดว่าวิธีที่ดีที่สุดคือติดตั้งไว้ในรูทของแอปของคุณ เพราะทรีย่อยจำนวนมากอาจใช้ในภายหลัง คุณควรติดตั้งการตั้งค่าขั้นต่ำด้วยงานที่ง่ายและตรงไปตรงมาเพื่อดูว่าฮึดฮัดเรียกใช้หรือไม่ - person Tuan; 14.10.2014
comment
ไฟล์ฮึดฮัดของคุณสามารถอยู่ที่ใดก็ได้ในแผนผังย่อย คุณต้องให้เส้นทางไปยัง cli จาก /root คุณสามารถเรียก grunt /sub/tree/mytasks.js - person Tuan; 14.10.2014