不能运行Yeoman(哟)作为sudo

时间:2015-04-09 13:57:03

标签: vagrant yeoman

我安装了预先安装了MEAN堆栈的this流浪盒(下载量为1.3k,所以我假设是一个很好的)。

我尝试运行yo meanjs,但它没有必要的权限来写文件夹,所以我尝试了sudo yo meanjs并且它崩溃了以下错误:

Error: EACCES, permission denied '/home/vagrant/.config/configstore/insight-yo.yml'
You don't have access to this file.

我对MEAN堆栈相对较新,但据我所知,root通常具有无限的权限,为什么会发生这种情况,我错过了什么?

1 个答案:

答案 0 :(得分:0)

我能够让这个盒子工作,但是我必须在vagrant文​​件中改变一些东西,并在盒子里做。

Vagrant文​​件

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|

  config.vm.box = "arvindr21/mean-box"
  config.vm.network :forwarded_port, guest: 8080, host: 8080
  config.vm.network :forwarded_port, guest: 80, host: 2000
  config.vm.network :forwarded_port, guest: 3000, host:3000

  config.vm.provision "shell", inline: <<-SHELL
      # Update Stuff
      # =======================================
      apt-get -y update

      # Folder Sync
      # =======================================
      echo "Folder Sync"
      if ! [ -L /var/www ]; then
        rm -rf /var/www
        ln -fs /vagrant /var/www
      fi
  SHELL

end

在框中

  • 要进入您的框,您需要执行vagrant ssh

  • 然后将目录更改为您的vagrant文​​件夹,该文件夹实际上是sym链接到您工作的文件夹。 cd /vagrant

  • 请使用yo meanjs

  • 您将收到错误,因为并非所有依赖项都是从您的NPM直接安装的。

  • 在此步骤之后,您将运行sudo npm install,这将获得所有依赖项。安装需要一段时间。

  • 最后,您已准备好执行grunt以使您的应用程序在端口3000上运行。这将需要一段时间,您将看到错误节点env未定义,但应用程序将运行为预计在localhost:3000

希望有所帮助。