Grunt Watch tidak berfungsi dengan basis file yang disetel ke subdirektori

Saya mengalami masalah saat Grunt Watch tidak berfungsi dengan subdirektori saya menggunakan Grunt. Inilah pengaturan direktori saya:

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

Dan saya telah mengatur basis secara manual ke direktori home di gruntfile saya:

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

Saya ingin menyimpan gruntfile saya di direktori ini untuk bekerja dengan orang lain di tim saya dan tidak menggunakan banyak file grunt.

Menjalankan 'grunt' berfungsi dengan baik. Namun, ketika saya menjalankan Grunt Watch, saya mendapatkan pesan kesalahan saat memperbarui file saya:

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.

Ini adalah bagian jam tangan dari gruntfile saya:

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']
  }
}

Apa sih yang tidak saya dapatkan di sini? Bantuan apa pun akan sangat dihargai!


person boardlemur    schedule 13.10.2014    source sumber


Jawaban (1)


Anda melewatkan instalasi modul grunt

grunt-cli adalah modul yang berbeda dengan grunt sebenarnya. Saya pikir Anda harus menginstal grunt (itulah yang dimaksud dengan pesan kesalahan lokal) di direktori lokal atau di atas tempat gruntfile.js Anda berada.

person Tuan    schedule 13.10.2014
comment
Hmm. Saya melakukan itu tetapi masih mencari file grunt saya. Saya harus mengklarifikasi bahwa saya mencoba menjaga agar gruntfile tetap berada di direktori repo umum. Jika saya menginstal grunt di direktori home, saya harus menyimpan gruntfile saya di sana, bukan? Atau adakah cara untuk mengarahkannya ke home/repos/common/gruntfile.js? - person boardlemur; 14.10.2014
comment
Saya juga baru mendengus. Saya pikir yang terbaik adalah menginstalnya di root aplikasi Anda. Karena banyak subpohon yang mungkin menggunakannya nanti. Anda harus menginstal pengaturan minimum dengan tugas berjalan yang sederhana dan langsung untuk melihat apakah grunt tetap muncul. - person Tuan; 14.10.2014
comment
File grunt Anda bisa berada di mana saja di subpohon. Anda harus memberikan jalur ke cli. dari /root Anda dapat memanggil grunt /sub/tree/mytasks.js - person Tuan; 14.10.2014