IDE, извлекающая zip-файлы - PullRequest
0 голосов
/ 14 апреля 2020

Я пытался изменить текст внутри сжатого файла. До сих пор я был в состоянии написать функцию, которая распаковывает файл и функцию, которая вносит изменения в файл, которые я хочу.

Проблема в том, что каждая из них, при вызове функций вручную, работает независимо друг от друга хорошо, но когда я пытаюсь вызывать их один за другим, я не могу заставить их работать одинаково.

Этот извлекает файл

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
}

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

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