2015-01-05 2 views
4

Grunt 작업을 사용하여 다른 위치로 디렉토리를 복사하려고합니다. 나는이 복사가 실행되는 내 기본 작업에 실행하지 않으려는, 그래서 다음과 같은 코드를 사용하여 소위 "myTask"를 나는 새 작업을 등록하고 있습니다 :grunt.file.copy 실행 오류 코드 : ENOENT

내가 myTask를 실행할 때마다
grunt.registerTask('myTask', 'Make new dir and copy "src" there', function() { 
    grunt.file.copy('src/*','../dest/'); 
    }); 

, 그것은 알려줍니다 :

경고 : "src/*"파일 (오류 코드 : ENOENT)을 읽을 수 없습니다. 계속하려면 --force를 사용하십시오.

내가 복사하는 소스 디렉토리에 특정 구문이 없습니다.

+0

'grunt.file.copy()'는 전체 디렉토리가 아닌 한 곳에서 다른 곳으로 파일을 복사 할 수 있다고 생각합니다. 하지만 그 외에도, 두 가지 다른 'grunt-contrib-copy' 타겟을 갖고,'default' 태스크에서 어떤 타겟이 실행될지를 지정하는 것은 어떻습니까? – jakerella

+0

@ jakerella 내 기본 작업에서 실행할 복사 대상을 지정하는 방법을 모르겠습니다. grunt.initConfig 함수에 둘 다 포함하지 않았습니까? 자동으로 실행됩니다. 또한 grunt.file.copy ("*. *")를 사용하여 모든 파일을 복사 할 수 있지만 같은 오류가 발생합니다. –

+0

예,이 기능을 사용하여 디렉토리 또는 파일 목록을 복사 할 수는 없지만 단일 파일 만 복사 할 수는 있습니다. 이것을 달성하기 위해'copy' 타겟을 사용하는 방법에 대한 답을 추가 할 것입니다. – jakerella

답변

1

당신은 이미 copy 작업을 사용하지만 default 작업이 특정 복사를 포함하지 않을 ... 그래서 당신의 설정에서 여러 대상을 사용하고 당신의 default에서 수행 할 수있는 지정하는 것이 좋습니다 언급 작업 배열 :

grunt.initConfig({ 
    copy: { 
    js: { 
     files: [{ 
     expand: true, 
     src: ['path/to/js/*.js'], 
     dest: 'dest/js' 
     }] 
    }, 
    otherstuff: { 
     files: [{ 
     expand: true, 
     src: ['src/**'], 
     dest: 'dest/' 
     }] 
    } 
    }, 
    // ... 
}); 

// notice that in our default task we specify "copy:js" 
grunt.registerTask('default', ['jshint', 'concat', /* etc, */ 'copy:js']); 

지금 당신이 ~$ grunt copy:js 별도로 ~$ grunt copy:otherstuff를 실행하고 방금 ~$ grunt를 실행할 때 그것은 단지 copy:js를 실행하는 기본 작업을 실행합니다.

+0

이것은 정확히 내가 필요한 것입니다. 감사합니다. –

+1

도와 줘서 기쁩니다. – jakerella

관련 문제