2013-01-22 10 views
6

Próbuję skonfigurować grunt do minify liczbę plików js w katalogu src i skopiować je do katalogu budowania. Po grunt task documentation, uważam, że poniżej powinna działać konfiguracja.Grunt multi-zadań rzuca błąd EISDIR podczas budowania

uglify: { 
    dist: { 
     files: [ 
     { 
      expand: true,  // Enable dynamic expansion. 
      cwd: 'src/js/', // Src matches are relative to this path. 
      src: ['**/?.js'], // Actual pattern(s) to match. 
      dest: 'build/minified/', // Destination path prefix. 
      ext: '.min.js' // Dest filepaths will have this extension. 
     } 
     ] 
    } 
    } 

Kiedy biegnę chrząknięcie otrzymuję komunikat

Running "zeszpecić: dist" (zeszpecić) Zadanie OSTRZEŻENIE: nie można napisać "Build/minified" plik (kod błędu: EISDIR). Użyj --force, aby kontynuować.

Jeśli przełączę definicję na ręczne ścieżki plików, wszystko działa poprawnie. Czy dokumentacja jest nieprawidłowa? czy używam go źle?

Używam chrząknięcie v0.4.0rc2

+0

mam tego problemu, jak również. Hmmmm. –

+1

Zaktualizuj pomruk i zamień 'src: ['** /? Js']' z 'src: ['**/*. Js']' – mutil

+0

@mutil - Prawidłowy problem. Jeśli chcesz opublikować swój komentarz jako odpowiedź, zaakceptuję to. Dzięki. – madcapnmckay

Odpowiedz

3

Aktualizacja grunt i zastąpić src: ['**/?.js'] z src: ['**/*.js']

Więcej informacji można znaleźć w instrukcji na globbing patterns.

0

Zmienić funkcję detectDestType w node_modules/grunt-contrib-copy/zadania/copy.js jak poniżej:

var detectDestType = function(dest) { 
    if (grunt.util._.endsWith(dest, path.sep)) { 
     return 'directory'; 
    } else { 
     return 'file'; 
    } 
    }; 

To powinno rozwiązać problem.

1

miał podobny problem, gdzie byłem coraz problem wczytywania plików o strukturze:

bower_components/Chart.js/Chart.min.js

Podobno grunt walki z katalogów zawierających .js w nich. Znalazłem to rozwiązanie, które naprawiło mój problem: https://github.com/cbas/grunt-rev/issues/29

Zasadniczo jawnie usuwasz katalogi problemów w dziale rev.

tj to działa:

rev: { 
     files: { 
      src: [ 
       'dist/**/*.js', 
       '!dist/bower_components/Chart.js', 
      ] 
     } 
    }, 
Powiązane problemy