꿀꺽

2014-12-08 5 views
2

에서 다른 폴더에서 자산을 처리하는 방법을 내가 글로브 패턴의 목록을 가지고 :꿀꺽

var assets = [ 
    '../projects.a/dir1/dir2/file1.js', 
    '../projects.b/dir1/dir2/file2.js', 
    './app/scripts/dir1/dir2/module.js' 
]; 

내 이명 령 폴더, 에 그 패턴에 의해 표현되는 모든 파일을 복사하는 작업을 만들려하고 구조를 유지하십시오. 예를 들어, 내 이명 령 폴더에 나는 다음 원하는 :

gulp.task('scripts', ['clean'], function() { 
    return gulp.src(assets) 
     .pipe(gulp.dest('dest')); 
}); 

문제는 내가 '이명 령'디렉토리의 한 수준에서 얻을 수 있습니다 :

'dest/projects.a/dir1/dir2/file1.js', 
'dest/projects.b/dir1/dir2/file2.js', 
'dest/app/scripts/dir1/dir2/module.js' 

나는 다음과 같은 작업을 만들었습니다. 예 : \

'dest/dir2/file1.js', 
'dest/dir2/file2.js', 
'dest/dir2/module.js' 

무엇이 잘못 되었습니까? 어떻게 해결할 수 있습니까?
꿀꺽 마심과 함께 다른 폴더의 자산을 처리하는 일반적인 방법은 무엇입니까?

UPDATE
Looking for way to copy files in gulp and rename based on parent directory에 보면, 나는 gulp.src(assets, {base: './'})에 매개 변수로 {base: './'}을 설정하려고하지만 내 현재 디렉토리 아래에 다른 폴더 아래에 중첩 파일을 얻을. 나는 필요한 행동을 얻지 못했습니다. 어떤 생각?

+0

[부모 디렉터리를 기반으로 쭉 마시는에 파일을 복사하고 이름을 변경하는 방법을 찾고]의 중복 가능성 (http://stackoverflow.com/questions/21224252/를 부모 디렉토리에있는 이름 바꾸기를 기반으로하는 파일 복사 방법 – Mathletics

+0

@Mathletics 이것은 중복되지 않습니다. 각 파일마다 다르므로 기본 속성을 사용할 수 없습니다. 나는 이것을 처리하기위한 꿀꺽 꿀꺽 접근을 찾고있다. – Naor

+0

각 소스마다 별도의 스트림을 사용해야 할 수도 있습니다. gulp는 프로젝트의 루트에서 실행하려고하지만 프로젝트 외부로 도달하려고합니다. – Mathletics

답변

0

현재 디렉토리에없는 파일은 별도로 처리 할 수 ​​있습니다. 당신은 별도의 작업을 사용하거나 event-stream 사용하여 스트림에 참여할 수 :

var projectAssets = [ 
    '../projects.a/dir1/dir2/file1.js', 
    '../projects.b/dir1/dir2/file2.js' 
]; 
var assets = [ 
    './app/scripts/dir1/dir2/module.js' 
]; 

var es = require('event-stream'); 

gulp.task('scripts', ['clean'], function() { 
    return es.merge(gulp.src(assets, {base: './'}), gulp.src(projectAssets, {base: '../'})) 
     .pipe(gulp.dest('dest')); 
}); 
+0

이것은 좋은 시작입니다. 문제는 내가 변경할 수있는 몇 가지 기본이 있다는 것입니다. 나는 모든 경로 ('./', '../')를 파일 경로에서 얻는 방법을 찾고있다. 어떤 생각을하는 방법? – Naor

+0

'기지'를 어떻게 정의 하시겠습니까? '.'과'..'의 어떤 시리즈? 베이스 중 하나에 다른 디렉토리 이름이 포함되어 있으면 어떨까요? – Ben

+0

이것은 내 문제입니다 ... 나는 그것을 정의 할 수 없습니다. 나는 경로와 현재 작업 디렉토리에서 기지를 해결할 일반적인 방법을 찾으려고 노력하고있다. – Naor