Я пытаюсь создать интерфейс командной строки NodeJS, который будет использоваться для создания структуры проектов (со всеми необходимыми папками и файлами), копируя их из папки templates
в моем главном каталоге, откуда я создаю экземпляр процесса узла.Но, похоже, у меня есть некоторые проблемы с получением правильного пути.У меня есть эта функция, которая должна взять текущий путь к каталогу, где пользователь будет запускать команду из терминала, а затем скопировать туда файлы:
export async function createProject(options) {
options = {
...options,
targetDirectory: options.targetDirectory || process.cwd() // CWD -> current working directory
}
// ISSUE is probably around here
const currentFileUrl = import.meta.url;
const templateDir = path.resolve(
new URL(currentFileUrl).pathname,
'../../templates',
options.template.toLowerCase()
);
options.templateDirectory = templateDir;
console.log(templateDir)
// ISSUE is probably around here
try {
await access(templateDir, fs.constants.R_OK);
} catch (err) {
console.log(`%s ${err}`, chalk.bold.red("ERROR"));
console.log('%s Invalid Template', chalk.bold.red("ERROR"))
process.exit(1)
}
console.log("Copy project files...")
await copyTemplateFiles(options);
console.log("%s Project ready", chalk.bold.green("DONE"))
return true;
}
Я указал, где я думаю проблема исходит, потому что, когда я только консоль регистрирую значение templateDir
, он возвращает мне этот путь:
C:\E:\Web%20development\Projects\creator-cli\templates\javascript
с two разделы предварительно привязаны к пути, что, вероятно, приводит к его сбою.Вот ошибка , которую я получаю:
Error: ENOENT: no such file or directory, access 'C:\E:\Web%20development\Projects\creator-cli\templates\javascript'
Я понятия не имею, почему он делает это с C:\E:\
.Любая помощь будет оценена :) 1025 *