ReferenceError: данные не определены при написании сценария giped - PullRequest
1 голос
/ 11 марта 2020
  gulp.task('default', function(done) {
    inquirer.prompt([{
        type: `input`,
        message: `Enter the path`,
        default: `./admin/admin.json`,
        name: `path`
    }]).then(function(answers) {
      console.log(answers.path);
      console.log('answers');
      mydefaultTaskTwo(null, answers.path).pipe(pipedFunction());
      done();
    })

  });

  function mydefaultTaskTwo(cb, path) {
    let data = '';

    try {
      data = fs.readFileSync(path, 'utf-8');
    } catch (e) {
      console.log(`Error: ${e}`);
    }
    return data;

  }

  function pipedFunction() {
    let object = JSON.parse(data);
    object['main'] = 'admin';
    data = JSON.stringify(object);

    const readable = Readable.from(data)
    return readable;
  }

Я понимаю, что sr c возвращает поток, а pipe принимает этот поток и возвращает поток, но как вы подаете поток в pipedFunction, вызываемый внутри pipe? Я не уверен, как это работает. Я получаю следующую ошибку:

ReferenceError: данные не определены.

Есть ли что-то, что я неправильно понимаю в сценариях gulp?

1 Ответ

1 голос
/ 11 марта 2020

По сути, вы определяете data как локальную переменную уровня области действия и пытаетесь получить ее из другой области действия, где она undefined. Итак, вам нужно использовать тот факт, что data возвращается и передать его, например:

var data = mydefaultTaskTwo(null, answers.path);
data.pipe(pipedFunction(data));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...