Невозможно создать приложение Yeoman

Я получаю это, когда пытаюсь создать веб-приложение с yeoman,

/usr/local/lib/node_modules/yo/node_modules/insight/node_modules/configstore/configstore.js:66
                throw err;
                      ^
Error: EACCES, permission denied '/root/.config/configstore/insight-yo.yml'
You don't have access to this file.

    at Object.fs.openSync (fs.js:436:18)
    at Object.fs.writeFileSync (fs.js:975:15)
    at Object.create.all.set (/usr/local/lib/node_modules/yo/node_modules/insight/node_modules/configstore/configstore.js:56:8)
    at Object.Configstore (/usr/local/lib/node_modules/yo/node_modules/insight/node_modules/configstore/configstore.js:19:11)
    at new Insight (/usr/local/lib/node_modules/yo/node_modules/insight/lib/insight.js:23:34)
    at process.<anonymous> (/usr/local/lib/node_modules/yo/node_modules/insight/lib/push.js:11:16)
    at process.emit (events.js:98:17)
    at handleMessage (child_process.js:322:10)
    at Pipe.channel.onread (child_process.js:349:11)

Я погуглил и попробовал следующее, но это не помогло:

chown root /root/.config/configstore/insight-yo.yml 

chown myusername /root/.config/configstore/insight-yo.yml 

Установлены npm-sudo-fix и запустил его, и пока не повезло.

Я на Debian Wheezy и у меня есть npm 1.4.4.

7 ответов

Решение

Я столкнулся с той же проблемой. Я запустил команду ниже, она исправила мою проблему:

mkdir -p /root/.config/configstore

chmod g+rwx /root /root/.config /root/.config/configstore

Та же проблема произошла со мной, я был в корневом режиме пользователя #. Я просто вернулся к обычному пользователю $, и это сработало. я использую Zorin OS

Я просто исправил это в Windows. Я сделал три вещи, одна из которых исправила это, я не уверен.

Запустите команду cmd от имени администратора.

takeown /? эта команда эквивалентна chown (Linux), но для Windows.

cacls -cacls /E /T /G :F

просто зайди в $USER/Users/calvin/.config/configstore/ и сделать файлы невидимыми.

это сработало для меня как шарм. Я пытался это исправить уже много дней.

У меня была такая же проблема при создании приложения meanjs в Ubuntu, и я исправил эту проблему, используя sudo вместо root:

sudo npm install -g yo generator-meanjs bower grunt

Тогда я мог бы создать приложение без повторного запроса пароля:

yo meanjs

sudo позволяет пользователю действовать как root без root -входа, более безопасно использовать sudo вместо входа в систему как root. sudo vs root - askubuntu

Я смог это исправить, запустив:

echo prefix = ~/.node >> ~/.npmrc

а также

export PATH=$HOME/.node/bin:$PATH

Объяснение здесь:

Ошибка при установке yeoman
Что означает `echo prefix = ~/.node >> ~/.npmrc`?
npm / yeoman установить генератор-угловой без sudo

Проблема в том, что вам не разрешено использовать некоторые из модулей nodejs. в основном, проблема связана с авторизацией менеджера пакетов узла "npm", чтобы исправить это, сначала запустите эту команду

sudo npm install --global yo --allow-root

Хотя chmod Команда, казалось, работала сначала, позже я получил похожую ошибку для другой папки. Но здесь я нашел этот обходной путь, который также исправил это:

sed -i -e '/rootCheck/d' "${NPM_CONFIG_PREFIX}/lib/node_modules/yo/lib/cli.js"

Если yo запускается как root, rootCheck понизится до UID 1000 (в Linux) или 501 (в OS X). Это вызывает ошибку разрешения. Но в Docker-контейнере вы можете запускать с правами root, поэтому у вас нет другого выбора.

Вам необходимо повторно выполнить эту команду после обновления Йомен. В случае NPM_CONFIG_PREFIX не определено, вы можете использовать:

export NPM_CONFIG_PREFIX=$(npm config get prefix)
Другие вопросы по тегам