Копирование файла в каталог, не относящийся к проекту, после компиляции webpack
Я хочу разработать приложение React для работы в каталоге и скопировать файл bundle на локальный экземпляр нашего сайта, который работает на бэкенде Django в другом каталоге на моей локальной файловой системе. Но, конечно, я могу быстро разработать в одном каталоге и скопировать пакет в другой каталог с помощью моей файловой системы. Тем не менее, я надеялся автоматизировать это при каждой компиляции.
Я написал плагин для моего конфигурационного файла webpack и могу читать пакет и записывать его в отдельный файл в каталоге проекта (используя пакет fs). Тем не менее, я не могу найти способ записать копию в другой каталог в моей файловой системе. Поэтому она либо оказывается в каталоге проекта, из которого я компилирую, либо я получаю ошибку
Ошибка: ENOENT: нет такого файла или каталога
Возможна ли такая вещь? Например, я предполагаю, что я мог бы записать пакет в другую директорию в первую очередь и не копировать его, если вывод webpack может записывать в другое место.
Вот код моего плагина в моем webpack.config.js на данный момент. В этом примере я пытался записать его на рабочий стол для тестирования, но в конечном итоге я хотел бы поместить его в другую директорию.
class Copy {
apply(compiler) {
compiler.hooks.afterEmit.tap('Copy', (compilation) => {
//const file = compilation.getAsset('bundle.js')
//console.log(file.name)
let string = fs.readFileSync('./static/js/bundle.js')
fs.writeFile('/Users/<username>/Desktop/bundle.js', string, (err) => {
if (err) throw err
console.log(err)
})
})
}
}
Я пробовал несколько вариантов пути в функции fs.writeFile, например, полный абсолютный путь C:/Users/<username>/Desktop/bundle.js и пробовал с ведущим символом / и без него, хотя я считаю, что он нужен, если я не указываю букву диска.
Любая помощь будет оценена по достоинству.
Выяснил, каким на самом деле должен быть путь. Я запускаю WSL2 на Windows 10 и компилирую через webpack на терминале linux. Если я указываю полный каталог, используя синтаксис WSL
/mnt/c/Users/<username>/Desktop/bundle.js
Например, я могу записать пакет туда, куда ему нужно.