如何排除(忽略)vagrant rsync中的某些文件夹?

时间:2017-06-03 21:42:23

标签: vagrant rsync

我希望在我的流浪虚拟框中运行npm install。

但每当我运行npm install命令时,我的rsync都会执行。由于我的主机没有安装node_modules,它只是完全删除了我的文件夹。

我需要做什么才能让我的流浪汉rsync忽略node_modules文件夹?

我不能让node_modules进入客户机,因为我的主机和客户机是两个不同的系统。到目前为止,我的vagrantfile看起来像这样。

Vagrant.configure("2") do |config|
  config.vm.box = "laravel/homestead"

  config.vm.hostname = "localhost"

  config.vm.network "forwarded_port", guest: 8000, host: 8000

  config.vm.synced_folder "./", "/home/vagrant/app"

  config.vm.provider "virtualbox" do |v|
    v.name = "web2"
    v.memory = "4096"
    v.cpus = 2
    v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME", "1"]
  end

  config.vm.synced_folder "./", "/home/vagrant/app", type: "rsync", rsync_auto: true, rsync_exclude: ['node_modules*']
  config.vm.provision :shell, path: "provision/setup.sh"

end

我通过

执行vagrant rsync
vagrant rsync-auto

2 个答案:

答案 0 :(得分:3)

rsync__exclude以及rsync__auto需要2 _

您需要将您的行重写为

config.vm.synced_folder "./", "/home/vagrant/app", type: "rsync", rsync__auto: true, rsync__exclude: ['./node_modules*']

答案 1 :(得分:0)

http://perrymitchell.net/article/npm-symlinks-through-vagrant-windows/上的第3步最终对我有用......

从页面:

  

步骤很简单:

     
      
  1. 删除node_modules目录(如果存在)。
  2.   
  3. 创建一个名为" node_modules_projectname"的目录。在VM的主目录(〜)(一些文章和帖子建议制作   / tmp中的目录,但很明显这是在重启时清除的,所以可能   对于这类事情来说,这不是最佳体验。)
  4.   
  5. 从项目目录中链接本地node_modules目录

         

    ln -s ~/node_modules_projectname /path/to/your-project/node_modules

  6.   
  7. 在项目目录中安装软件包:

         

    npm install

  8.