Не включайте абсолютный путь к архиву с помощью узла-tar - PullRequest
0 голосов
/ 05 марта 2019

У меня есть каталог с несколькими каталогами и файлами внутри, которые я хочу добавить в tar.Я использую node-tar пакет для него.Я передаю ему два параметра: строки источника и назначения после path.resolve exec.Наконец, у меня есть tar.gz, который включает абсолютный путь перед моей целью.

Вот что я сделал:

const path = require('path');
const tar = require('tar');
const { promisify } = require('util');
const tarCreateAsync = promisify(tar.c);

const src = path.resolve(__dirname, 'test-data');
const dst = path.resolve(__dirname, 'output-data');

async function addToTar(src, dst) {
    await tarCreateAsync(
        {
            gzip: true,
            file: path.resolve(dst, 'static.tgz'),
        },
        [src]
    )
}

addToTar(src, dst);

Я видел эту статью , но APIбыл изменен, и привязка ничего не показывает.

Также пробовал с опцией preservePaths, но без эффекта

1 Ответ

0 голосов
/ 05 марта 2019

Решите, это была опция C или cwd для установки базового значения пути.

Это выглядит так

    await tarCreateAsync(
        {
            gzip: true,
            file: path.resolve(dst, 'static.tgz'),
            cwd: path.resolve(__dirname),
        },
        ['test-data']
    )
...