Недавно я начал использовать Yeoman для создания статических проектов сайта, построенных с Jekyll. yo jekyllrb
работает нормально, но, с точки зрения безопасности, я обеспокоен той части, которая приходит после того, как он печатает:Почему Йомену требуется подключение к Интернету при запуске нового проекта?
I'm all done. Running bower install & npm install for you to install the required dependencies. If this fails, try running the command yourself.
Если я не подключен к Интернету bower install
все еще работает хорошо, но npm install
дает следующее сообщение об ошибке:
npm ERR! git fetch -a origin (git://github.com/gruntjs/grunt-contrib-watch.git) fatal: unable to connect to github.com: npm ERR! git fetch -a origin (git://github.com/gruntjs/grunt-contrib-watch.git) github.com: Name or service not known npm ERR! git fetch -a origin (git://github.com/dannygarcia/grunt-jekyll.git) fatal: unable to connect to github.com: npm ERR! git fetch -a origin (git://github.com/dannygarcia/grunt-jekyll.git) github.com: Name or service not known
Из того, что я понял, прочитав, что говорит о in response to this questionsudo
, npm
и chroot
, работающий под npm install
потенциально экс ecutes из Интернета и поэтому рекомендуется префикс такой команды sudo
, чтобы разрешить npm
привилегии понижения. Выполнение npm config set unsafe-perm=false
должно заставить следовать этой рекомендации. Это, однако, не влияет на npm install
, я думаю, потому что это локальная установка. Это имеет смысл для меня с тех пор (особенно в dev. Env.) Код, который установлен локально, скорее всего, должен выполняться собственным пользователем. Что для меня не имеет смысла, так это то, что в случае с Йоменом код должен быть извлечен из Интернета и исполнен с той же частотой, что и я начинаю новый (простой) проект, тем более, что npm
не проверяет подписи. Я полагаю, что решением для этого было бы отключить npm
для моего пользователя и скопировать два проверенных файла node_modules
из другого подобного проекта. В случае проектов с более разнообразными потребностями я бы рассмотрел использование песочницы (возможно, с chroot
).
Каков стандартный способ решения этой проблемы? Предоставляет ли Yeoman какие-либо варианты, позволяющие обойти эту проблему?
Спасибо. Тем не менее, это то, что последний README говорит о sudo «Начиная с версии 0.3, рекомендуется запускать npm с правами root. Это позволяет npm изменять идентификатор пользователя для пользователя никого до запуска каких-либо команд сборки или тестирования пакетов». https://github.com/isaacs/npm/tree/master. Проблема, с которой я сталкиваюсь, заключается в том, что npm говорит мне не доверять слишком много, что я загружаю с помощью npm, но Yeoman хочет, чтобы я доверял тому, что я загружаю каждый раз, когда начинаю новый проект (даже самый простой). Может быть, это do wth http://stackoverflow.com/questions/15020529/why-is-yeoman-not-recommended-for-building-websites – primroot
Получаю это. Если вам не удобно использовать что-то, что устанавливает зависимости, о которых вы не знаете, вы можете попробовать написать собственный генератор, ИЛИ проверить источник используемого генератора. По сути, генератор Yeoman просто копирует файлы в ваш проект на основе некоторых переменных, которые вы им даете, что экономит вам копию вручную из других проектов. Вы можете увидеть отпечатки jekyll в этом файле: https://github.com/Thomas-Lebeau/generator-jekyll/blob/master/app/templates/_package.json и, конечно же, вы можете вручную проверить созданную 'package.json 'перед выполнением' npm install'. – Ben