【问题标题】:ReferenceError: data is not defined when writing a piped gulp scriptReferenceError:编写管道 gulp 脚本时未定义数据
【发布时间】:2020-06-23 12:00:38
【问题描述】:
  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;
  }

我知道 src 返回一个流,而管道接收该流并返回一个流,但是如何将流输入到管道内部调用的 pipedFunction 中?我不确定它是如何工作的。我收到以下错误:

ReferenceError: 数据未定义。

我对 gulp 脚本有什么误解吗?

【问题讨论】:

    标签: gulp


    【解决方案1】:

    基本上,您将data 定义为本地范围级别的变量,并尝试从不同的范围(即undefined)访问它。因此,您需要利用 data 被返回并传递它的事实,例如:

    var data = mydefaultTaskTwo(null, answers.path);
    data.pipe(pipedFunction(data));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-10
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      相关资源
      最近更新 更多