L01 學習記錄

andu發表於2019-05-29

嗯,又回來了。晃了一圈,還是它最好。
社群更漂亮了。技術重要,氛圍也很重要。

開了藍燈,通過域名 xxx.test就訪問不了了,只能通過ip http://192.168.10.10/ 訪問,關掉藍燈就能通過域名訪問了。

1 homestead 和虛擬機器

我預設安裝的是最新的6版本的虛擬機器,發現社群的homestead只能支援最高5.2版本的虛擬機器。

2 yarn add cross-env 出錯

解決辦法:yarn add cross-env --no-bin-links

剛開始是 error An unexpected error occurred: "https://registry.yarnpkg.com/cross-env: ETIMEDOUT".

L01 學習記錄

開啟藍燈,重複輸入命令 yarn add cross-env後更新到第三步出錯:

error An unexpected error occurred: "EIO: i/o error, symlink '../../../parser/bin/babel-parser.js' -> '/home/vagrant/code/one/node_modules/@babel/core/node_modules/.bin/parser'".

L01 學習記錄

發現有 i/o 出錯資訊,聯想到 (https://segmentfault.com/q/101000000616345...

字面意思是設定 npm install 時不要建立符號連結。查了下說是為了解決 linux 下的 npm 在 ntfs 分割槽上執行 npm install 遇到的建立軟連線失敗問題引入的。

那是不是這樣的原因呢?
輸入命令 yarn add cross-env --no-bin-links 再試,果然通過

L01 學習記錄

3 cross-env: not found

執行完上一步,npm run dev 就會出現這個錯誤。baidu了一下,說是windows平臺上的虛擬機器特有的,需要刪除package.json檔案scripts中的cross-env

L01 學習記錄

然後執行 npm run dev (4.2)出現錯誤

npm ERR! EIO: i/o error, symlink '../@babel/parser/bin/babel-parser.js' -> '/home/vagrant/code/one/node_modules/.bin/parser'

L01 學習記錄

那就嘗試著安裝 yarn add @babel/parser --dev 或者 npm install --save-dev @babel/parser
安裝就出現 13458個的那個進度條,每次都有它。隨便npm install 一下,幾十分鐘完成不了,而且多數時候彈出的是出錯資訊。package.json裡面就幾個依賴包,node_modules資料夾卻有100多兆大小,關鍵是還沒怎麼編碼呢。真是費時間。

L01 學習記錄
安裝了還是出錯

L01 學習記錄

那就執行 npm run dev 吧,讓它自己執行吧,上一次是等了好久沒反應,所以執行npm install,出現上面的錯誤的,這次就一直讓它去吧……

L01 學習記錄

等了十幾分鍾,出現這個錯誤

L01 學習記錄

百度發現 (http://www.pilishen.com/posts/reason-and-s...

好吧,又是微軟Windows的鍋~也即是我們在windows系統上使用NODE_ENV=production這樣的方式來設定node環境時,因為windows的系統變數是%ENV_VAR%這種格式,而“行業標準”是$ENV_VAR這樣的,當然windows上的bash例外。

那就刪除 cross-env 吧,上面已經嘗試過,出錯後再把 NODE_ENV=development 什麼的都刪除吧

L01 學習記錄

然後執行 npm run dev 竟然成功了……
然後還原始碼,把 NODE_ENV=development 等都加回去,再執行 npm run dev ,尼瑪,又成功了……

L01 學習記錄

總結一下,就是windows裡面使用homestead,要先刪除 scripts裡面的 cross-env 和 NODE_ENV=xxx 等,就可以執行 npm run dev 成功,我過後又加上  NODE_ENV=xxx 等,還是能再次執行  npm run dev 成功

-----

heroku裡面繫結信用卡,就可以繫結自己的域名了,然後連線 github 倉庫,選擇自動更新,這樣 git push 後,heroku上的網站就自動更新了。

9.3 密碼重設 min:3

系統預設密碼長度最少為8,想改為3,除了把min:8 修改min:3外,還有一個地方,找了好久,終於找到了

\vendor\laravel\framework\src\Illuminate\Auth\Passwords\PasswordBroker.php

protected function validatePasswordWithDefaults(array $credentials)
    {
        [$password, $confirm] = [
            $credentials['password'],
            $credentials['password_confirmation'],
        ];

        return $password === $confirm && mb_strlen($password) >= 3;
    }

9.4 重設密碼通知

重設密碼傳送的郵件是框架內建的,標題 Laravel 的是 .env 裡面第一行 APP_NAME 的內容。
郵件的內容在:

vendor\laravel\framework\src\Illuminate\Auth\Notifications\ResetPassword.php

public function toMail($notifiable)
    {
        if (static::$toMailCallback) {
            return call_user_func(static::$toMailCallback, $notifiable, $this->token);
        }

        return (new MailMessage)
            ->subject(Lang::getFromJson('Reset Password Notification'))
            ->line(Lang::getFromJson('You are receiving this email because we received a password reset request for your account.'))
            ->action(Lang::getFromJson('Reset Password'), url(config('app.url').route('password.reset', ['token' => $this->token, 'email' => $notifiable->getEmailForPasswordReset()], false)))
            ->line(Lang::getFromJson('This password reset link will expire in :count minutes.', ['count' => config('auth.passwords.users.expire')]))
            ->line(Lang::getFromJson('If you did not request a password reset, no further action is required.'));
    }

結尾部分沒找到,不知道是哪個檔案。

L01 學習記錄


待續