[requirejs] Gulp 작업에서 파일 / 디렉토리 제외

모든 사용자 지정 .JS 파일 (공급 업체 이외의 라이브러리)을 연결하고 어지럽게 만드는 gulp rjs 작업이 있습니다.

내가하려는 것은이 작업 (제어기 및 지시문)에서 일부 파일 / 디렉토리를 제외하는 것입니다.

여기 내 나무가 있습니다.

 - application
    - resources
      - js
        main.js
        - vendor
            - jquery
            - modernzr
            - angular
        - controllers
            - controller1
            - controller2
            - controller3
        - directives
            - directives1
            - directives2
            - directives3
        - widgets
            - widget1
            - widget2
            - widget3
            - widget4
        - modules
            - modules1
            - modules2
            - modules3
            - modules4

여기 내 gulp.js

dir = {
    app:        'application',
    dest:       'dest',
};

config = {
    src: {
        js: dir.app + '/resources/js'
    },
    dest: {
        js: dir.dest + '/resources/js'
    }
};

gulp.task('rjs', function() {

      rjs({
            baseUrl: config.src.js,
            out: 'main.js',
            name: 'main',
            mainConfigFile: config.src.js + '/main.js',
            exclude: [ 'jquery', 'angular']
        })
        .pipe(prod ? uglify({ mangle: false, outSourceMap: true, compress: { drop_console: true } }) : gutil.noop())
        .pipe(gulp.dest(config.dest.js))
        .pipe(filesize())
        .pipe(dev ? connect.reload() : gutil.noop());

});



답변

빠른 답변

src에서는 항상 “!”를 사용하여 무시할 파일을 지정할 수 있습니다.

예 (js 폴더 및 하위 폴더에서 모든 * .min.js 파일을 제외하려는 경우 :

gulp.src(['js/**/*.js', '!js/**/*.min.js'])

개별 파일에도 적용 할 수 있습니다.

확장 된 답변 :

꿀꺽 꿀꺽 문서에서 추출 :

gulp.src (글로브 [, 옵션])

제공된 glob 또는 glob 배열과 일치하는 파일을 생성합니다. 플러그인으로 파이프 할 수있는 Vinyl 파일 스트림을 리턴합니다.

glob는 node-glob 구문을 나타내 거나 직접 파일 경로 일 수 있습니다.

따라서 노드 글로브 문서를 보면 미니 매치 라이브러리를 사용하여 일치하는 것을 볼 수 있습니다.

minimatch 문서 , 그들은 다음을 지적한다 :

패턴이!로 시작하면 그런 다음 무효화됩니다.

그리고 이것이 사용 하는 이유입니다 ! 기호는 꿀꺽 꿀꺽 작업에서 파일 / 디렉토리를 제외합니다


답변

Gulp는 glob를 일치시키기 위해 후드 아래에서 micromatch를 사용하므로 .min.js 파일을 제외하려면 다음과 같은 확장 된 globbing 기능 을 사용하여 동일한 결과를 얻을 수 있습니다 .

src("'js/**/!(*.min).js")

기본적으로 말하는 것은 : * .min.js로 끝나지 않는 js 내부의 모든 수준에서 모든 것을 가져옵니다.


답변