Как создать несколько файлов с Gulp - PullRequest
0 голосов
/ 11 октября 2019

Я уже несколько лет использую gulp для компиляции исходного кода и других традиционных вещей, связанных с web-разработчиками. Но теперь я собираюсь использовать это для чего-то другого.

Я собираюсь использовать gulp для генерации фрагментов карты мира для моей игры. Куски - это просто набор элементов. В идеале, вот как я представляю задачу для генерации чанков мира:

task('genChunk', ()=>{
  return ...  //  from where this chain should start? how do I loop it?
    .pipe(putGrass)
    .pipe(putTrees)
    .pipe(putRivers)
    .pipe(putCorners)
    .pipe(putChunkNumber)
    .pipe(wrapMeta) // wrap generated chunk info with some meta data
    .pipe(source(`${chunk.id}.json`)  //  give a name to file
    .pipe(dest(`${worldsPath}/${config.name}`) //  save file in dest dir
})

Мне нравится идея провести процесс генерации чанков через цепочку каналов.

Но кажется, что каждый глотокЗадача, которую я могу найти через Интернет, начинается с gulp.src, что не в моем случае. Итак, главный вопрос - подходит ли gulp для задачи, которая не требует ввода файлов, для такой задачи, как эта? Как запустить цепочку труб? Как мне это зациклить?

В настоящее время я реализовал задачу для генерации чанка:

const genChunk = ({worldHeight, worldWidth, name}) => function genChunk(cb){
  Array(worldWidth*worldHeight).fill(null).map((k, i)=>{
    const chunk = {
      id: i+1,
      items: compose(
        putGrass,
        putTrees,
        putRivers,
        putCorners,
        putChunkNumber,
      )([])
    }
    const json = JSON.stringify(chunk, null, 2)
    fs.writeFileSync(`${worldsPath}/${name}/chunks/${chunk.id}.json`, json, 'utf8');
  })
  cb()
}

Но этот способ не использует никаких функций gulp, кроме самого task.

Нужно ли мне вообще использовать gulp здесь?

Каковы возможные преимущества использования gulp для такого рода задач?

Стоит ли предпочесть реализовать внутренний API для создания мира? куски вместо использования задачи gulp?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...