Я пытался изменить текст внутри сжатого файла. До сих пор я был в состоянии написать функцию, которая распаковывает файл и функцию, которая вносит изменения в файл, которые я хочу.
Проблема в том, что каждая из них, при вызове функций вручную, работает независимо друг от друга хорошо, но когда я пытаюсь вызывать их один за другим, я не могу заставить их работать одинаково.
Этот извлекает файл
function extractProjectFile(projectPath) {
const projectContent = fs.createReadStream(projectPath)
//create write stream
const projectName = path.basename(projectPath).split(".")[0]
const newProjectPath = path.dirname(projectPath)
const writeStream = fs.createWriteStream(`${newProjectPath}/${projectName}`)
const unzip = zlib.createGunzip()
projectContent.pipe(unzip).pipe(writeStream)
}
и этот здесь изменяется требуемый текст:
function changeVersion(projectPath) {
fs.readFile(projectPath, "utf-8", (err, data) => {
if (err) {
return console.log(err);
}
//get exact string to replace
const Split = ` <Node Version="1">`;
const newData = data.split(Split);
const regex = `Version="${getVersion(newData)}"`;
//replace data
const result = data.replace(regex, `Version="1"`);
//save back to file
fs.writeFile(projectPath, result, "utf-8", (err) => {
if (err)
return console.log(err);
console.log("Sucssus! the version changed in the file!");
});
});
}
function getVersion(data) {
const version = data[0].slice(0,-4)
return version
}
Дело в том, что когда я пытаюсь использовать первую функцию для извлечения, а затем вызываю второе действие самостоятельно, это дает другой результат, чем когда я пытаюсь вызвать их в коде , Каждая функция работает самостоятельно, но, похоже, они не работают вместе.