Как проверить, нашел ли gulp-concat какой-либо файл в исходной папке, и если нет, доставить файл по умолчанию

Я использую gulp-concat объединить набор файлов объявлений Typescript (d.ts) из папки, в один файл декларации (index.d.ts) в другую папку.

Случай:

  • SourceFolder: может содержать ноль или более файлов объявлений TS
  • DestinationFolder: должен содержать один index.d.ts файл

Вот задание gulp, которое выполняет конкатенацию:

gulp.task('concatCSharpModels', ['cleanCSharpModelsDest'], function () {
    return gulp.src(paths.modelsSrc)
               .pipe(concat('index.d.ts', { newLine: '\r\n' }))
               .pipe(gulp.dest(paths.modelsDest));
});

Проблема в том, что папка назначения объявлена ​​внутри tsconfig.json файл как "types" папка, поэтому, когда исходная папка не содержит никакого файла, папка назначения остается без какого-либо файла, и компилятор TS выдает следующую ошибку:

Не удается найти файл определения типа для 'cSharpModles'

Здесь tsconfig.json

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es5",
    "sourceMap": true,
    "typeRoots": [
      "./node_modules/@types",
      "./appTypings"
    ],
    "types": [
      ...
      "cSharpModels",
      ...          
    ], 
    "lib": [ "dom", "es2015.promise", "es5" ]
  },
  "include": [
    "./src/**/*.ts"
  ],
  "exclude": [
    "node_modules",
    "appTypings"
  ]  
}

Есть ли способ сказать глотку, чтобы произвести пустой index.d.ts файл, если он не находит файл для конкататации в исходной папке?

0 ответов

Другие вопросы по тегам