#javascript #node.js #fs
#javascript #node.js #fs
Вопрос:
Я работаю над организационным пакетом в npm, похожим на create-react-app в том смысле, что при запуске npx create-react-app myProject
будут сгенерированы все необходимые файлы.
Вот код, который работает в половине случаев.
const fs = require('fs-extra');
const CWD = process.cwd();
fs.copyFileSync(`${CWD}/src/myFile.js`, './newDest.js', (err) => {
if (err) throw err;
});
Когда я тестирую эту функцию локально, она работает. например node src/index.js myProject
Когда я тестирую его при глобальной установке, например, npx /path/to/project myProject
я получаю сообщение об ошибке ENOENT, потому что он не может найти мой файл, поскольку он еще не существует.
Есть ли лучший способ сделать это с помощью JavaScript или я чего-то здесь не хватает?
Ответ №1:
Похоже, что рабочий каталог настроен неправильно. Вы должны заменить process.cwd()
на process.chdir(__dirname)
. Попробуйте распечатать и проверьте, правильно ли отображается CWD или нет.
Комментарии:
1. Да, мне пришлось добавить
process.chdir(__dirname)
в начало файла, и все работает. Спасибо!