How can I get gulp-typescript to output to the same directory as the source file?

非 Y 不嫁゛ 提交于 2019-12-06 21:47:12

问题


I have the following pipeline

  function typescripts() {
    return gulp.src(paths.watchedFiles.ts)
        .pipe(cached('typescripts'))
        .pipe(plumber())
        .pipe(addsrc(paths.ts.include))
      //TODO: Need to eliminate the original source path (ex. /users/userName) from the sourcemap file.
        .pipe(sourcemaps.init())
        .pipe(ts(tsProjectMode, undefined, ts.reporter.fullReporter(true))).js
        .pipe(gulpIgnore.exclude(paths.ts.excludeFromPostCompilePipeline))
        .pipe(ngAnnotate({
          remove: false,
          add: true,
          gulpWarnings: false //typescript removes base path for some reason.  Warnings result that we don't want to see.
        }))
        .pipe(sourcemaps.write('.', {includeContent: false}))
        .pipe(gulp.dest(paths.ts.basePath));
  }

I seem to have to make "hard code" the dest path based on the root of the src path. If my src path is app/modules/**.ts my dest path must be app/modules. This limits me to using a single root src path and I cannot use siblings.

I would like to be able to make my src ['path1/**/*.ts', 'path2/**/*.ts] and have the transpiled output written to the same folder where the source file was located.


回答1:


If you have source files like that:

gulp.src(['path1/**/*.ts', 'path2/**/*.ts])

Than it's equal to that:

gulp.src(['./path1/**/*.ts', './path2/**/*.ts], { base: '.' })

Which means, you can put your destination to:

gulp.dest('.')

since that's the lowest common denominator. The rest is done by Gulp.



来源:https://stackoverflow.com/questions/29505055/how-can-i-get-gulp-typescript-to-output-to-the-same-directory-as-the-source-file

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!