2017-06-03 163 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

相關問題