ReferenceError: data is not defined when writing a piped gulp script
ReferenceError: data is not defined when writing a piped gulp script
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 returns 是一个流,管道接受该流和 return 一个流,但是如何将流输入管道内部调用的 pipedFunction
?我不确定它是如何工作的。我收到以下错误:
ReferenceError: data is not defined.
我对 gulp 脚本有什么误解吗?
基本上,您将 data
定义为局部作用域级变量,并尝试从不同的作用域(即 undefined
)访问它。因此,您需要利用返回 data
的事实并传递它,例如:
var data = mydefaultTaskTwo(null, answers.path);
data.pipe(pipedFunction(data));
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 returns 是一个流,管道接受该流和 return 一个流,但是如何将流输入管道内部调用的 pipedFunction
?我不确定它是如何工作的。我收到以下错误:
ReferenceError: data is not defined.
我对 gulp 脚本有什么误解吗?
基本上,您将 data
定义为局部作用域级变量,并尝试从不同的作用域(即 undefined
)访问它。因此,您需要利用返回 data
的事实并传递它,例如:
var data = mydefaultTaskTwo(null, answers.path);
data.pipe(pipedFunction(data));