Я не думаю, что вы сделали что-то не так, похоже, что зависимость от йомана сломала йомана.Это зависимость от среды yeoman и эта проблема была открыта: https://github.com/yeoman/environment/issues/97 Скопируйте и вставьте нижеприведенную проблему:
Во время выполнения yo возникает следующая ошибка: Ошибка: EACCES: разрешение запрещено, scandir '/ usr / sbin / authserver (MacOS / High Sierra)
Culprit здесь:
// Adds support for generator resolving when yeoman-generator has been linked
if (process.argv[1]) {
paths.push(path.join(path.dirname(process.argv[1]), '../..'));
}
внутри getNpmPaths ().Мой yo находится в / usr / local / bin / yo, и это добавляет весь каталог / usr в путь поиска => globby.sync внутри resolver.findsGeneratorIn сгенерирует, если некоторые каталоги недоступны для чтения пользователем.
Примерно так решается проблема:
try {
modules = modules.concat(globby.sync(
['generator-*', '@*/generator-*'],
{cwd: root, onlyFiles: false, absolute: true}
));
} catch(err) {
debug( 'Could not access %s (%s)', root, err);
}
Мне удалось обойти эту проблему, установив глобальные пакеты в другую папку.https://docs.npmjs.com/getting-started/fixing-npm-permissions
Чтобы минимизировать вероятность ошибок разрешений, вы можете настроить npm для использования другого каталога.В этом примере это будет скрытый каталог в вашей домашней папке.
Создайте резервную копию компьютера перед запуском.
Создайте каталог для глобальных установок:
mkdir ~/.npm-global
Настройте npm для использования нового пути к каталогу:
npm config set prefix '~/.npm-global'
Откройте или создайте файл ~ / .profile и добавьте следующую строку:
export PATH=~/.npm-global/bin:$PATH
Вернитесь в командную строку, обновитесистемные переменные:
source ~/.profile
Тест: Загрузка пакета глобально без использования sudo.
npm install -g jshint
Вместо шагов 2-4 вы можете использовать соответствующую переменную ENV (например, если выне хочу изменять ~ / .profile):
NPM_CONFIG_PREFIX=~/.npm-global