為 Aurelia-cli 設定環境解釋

  • 作業系統: Mac OS X 10.11(因為我們使用的是 Vagrant,所以應該在 Windows / Linux 上執行)
    • Vagrant 1.8.4 已安裝
  • 主機作業系統上的目錄結構(Mac OS):
    • /路徑/到/專案
      • /規定
        • /包
          • 注意:如果你使用不同的版本,請務必在下面的 provision.sh 指令碼頂部更新變數。
          • atom.x86_64.rpm(下載: Atom
          • node-v6.4.0-linux-x64.tar.xz(下載: 節點
      • /流浪漢
        • Vagrantfile(下面的檔案內容)
        • provision.sh(下面的檔案內容)
  • 啟動虛擬機器 ($ ==終端提示)
    • 在 Mac OS 終端中
    • $cd /path/to/project/vagrant
    • $vagrant up
      • 下載 CentOS 7 vagrant box,執行配置指令碼
      • 在 Mac OS 終端外部啟動 VM 視窗
    • 完成所有操作後,使用 gui 登入 VM
      • 使用者:流浪漢
      • PW:流浪漢
    • 啟動 X Windows:
      • $startx(啟動 Gnome UI)
  • 設定 VM
    • 啟動終端視窗(應用程式下拉選單/實用程式)
    • 設定 sudo 執行 npm
      • 獲取 npm 的路徑:$which npm(/opt/node-v6.4.0-linux-x64/bin)
      • 新增到 visudo“secure_path”
        • $sudo visudo(需要 Vi / Vim 的基礎知識)
        • 輸入 i 進入插入模式
        • 使用箭頭鍵導航到“secure_path”行
        • 將“:/ opt/node-v6.4.0-linux-x64/bin”附加到“secure_path”
        • 輸入 esc 退出插入模式
        • 輸入“:wq”來編寫更改並退出 Vi
    • 更新 npm,修復 aurelia cli 中的關鍵錯誤
      • $npm install npm -g
    • 全域性安裝 aurelia cli
      • $npm install aurelia-cli -g
  • 啟動/停止 VM
    • 在 Mac OS 終端中
    • $cd /path/to/project/vagrant(如果你還沒有使用 Vagrantfile 的目錄)
    • $vagrant halt(保留所有檔案,關閉 GUI,關閉 VM)
    • $vagrant up(重啟虛擬機器,準備好後通過 GUI 登入)
    • $vagrant destroy(需要再次下載所有內容,你的本地檔案將被刪除。使用此功能從頭開始。)

現在,你已準備好使用 Aurelia CLI 開始構建你的網站!

Vagrantfile

    Vagrant.configure("2") do |config|
        config.vm.box = "centos/7"
        config.vm.hostname = "dev"
    
        config.vm.provider "virtualbox" do |vb|
            vb.gui = true
            vb.cpus = "4"
            vb.memory = "3092"
        end
    
        # Networking
        config.vm.network "private_network", ip: "192.168.0.3"
        config.vm.network :forwarded_port, guest: 80, host: 80 # nginx
        config.vm.network :forwarded_port, guest: 9000, host: 9000 # au run
        config.vm.network :forwarded_port, guest: 3001, host:3001 # BrowserSynch
    
        # Shares
        config.vm.synced_folder "../provision", "/home/vagrant/provision"
    
        # Provision
        config.vm.provision "shell", path: "provision.sh"
    end

provision.sh

HOME=/home/vagrant
NODE=node-v6.4.0-linux-x64
EPEL=epel-release-latest-7.noarch.rpm
ATOM=atom.x86_64

echo "************************************"
echo "Provisioning virtual machine..."
echo "************************************"
sudo cd $HOME

echo "***********************"
echo "Updating yum..."
echo "***********************"
sudo yum clean all
sudo yum -y install deltarpm yum-utils
sudo yum -y update --exclude=kernel*

echo "***********************"
echo "Updating yum, installing Dev Tools..."
echo "***********************"
sudo yum -y groupinstall "Base"
sudo yum -y groupinstall "GNOME Desktop"
sudo yum -y groupinstall "Development Tools"

echo "***********************"
echo "Installing tools..."
echo "***********************"
sudo yum install -y git tar gcc vim unzip wget curl tree nginx

if [ -d "/opt/$NODE" ]
then
  echo "**********************************"
  echo "Node already installed..."
  echo "**********************************"
else
  echo "**********************************"
  echo "Installing Node and update npm..."
  echo "**********************************"
  sudo cp /home/vagrant/provision/packages/$NODE.tar.xz /opt
  sudo tar -xpf /opt/$NODE.tar.xz -C /opt
  sudo echo "export PATH=\"$PATH:/opt/$NODE/bin\"" >> $HOME/.bash_profile
  sudo echo "export PATH=\"$PATH:/opt/$NODE/bin\"" >> /root/.bash_profile
  sudo source $HOME/.bash_profile
fi

echo "**********************************"
echo "Installing Atom..."
echo "**********************************"
sudo rpm -ivh /home/vagrant/provision/packages/$ATOM.rpm

echo "******************************"
echo "Installing EPEL..."
echo "******************************"
wget -P /etc/yum.repos.d http://dl.fedoraproject.org/pub/epel/$EPEL
sudo rpm -ivh /etc/yum.repos.d/$EPEL

echo "***********************"
echo "Git setup..."
echo "***********************"
git config --global user.email "your@email.com"
git config --global user.name "Your Name"
git config --global github.user "Username"

echo "***********************"
echo "Don't forget to:"
echo "sudo visudo"
echo "Append npm path to secure_path: /opt/$NODE/bin"
echo "sudo npm install npm -g"
echo "sudo npm install aurelia-cli -g"
echo "***********************"


echo "*********************************"
echo "VM Provisioning Complete!"
echo "*********************************"