2017-06-03 156 views
1

我希望在我的流浪虚拟框中运行npm install。如何排除(忽略)vagrant rsync中的某些文件夹?

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

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

我不能将node_modules rsynced到客户机器中,因为我的主机和guest虚拟机是两个不同的系统。到目前为止,我的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-auto 

回答

3

rsync__exclude以及rsync__auto执行流浪汉rsync的需要2 _

你需要重写你行

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

LOL你是对的! – user1017674

+0

不错 - 这实际上适用于我。我讨厌在通过Windows 10主机在我的Ubuntu流浪客虚拟机上开发时,必须处理node_modules附带的大文件名。 – Rob

0

http://perrymitchell.net/article/npm-symlinks-through-vagrant-windows/第3步最后对我来说效果更好......

从页面:

步骤很简单:

  1. 删除node_modules目录(如果存在)。
  2. 创建一个名为目录,比如在虚拟机的主目录(〜)“node_modules_projectname”(有些文章和帖子建议使 目录在/ tmp目录,但显然这是在重新启动时清零,所以它可能 不是最佳这种类型的东西的经验)。
  3. 链接从项目目录中的本地node_modules目录

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

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

    npm install

相关问题