嗯,又回來了。晃了一圈,還是它最好。
社群更漂亮了。技術重要,氛圍也很重要。
開了藍燈,通過域名 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".
開啟藍燈,重複輸入命令 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'".
發現有 i/o 出錯資訊,聯想到 (https://segmentfault.com/q/101000000616345...)
字面意思是設定 npm install 時不要建立符號連結。查了下說是為了解決 linux 下的 npm 在 ntfs 分割槽上執行 npm install 遇到的建立軟連線失敗問題引入的。
那是不是這樣的原因呢?
輸入命令 yarn add cross-env --no-bin-links
再試,果然通過
3 cross-env: not found
執行完上一步,npm run dev 就會出現這個錯誤。baidu了一下,說是windows平臺上的虛擬機器特有的,需要刪除package.json檔案scripts
中的cross-env
然後執行 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'
那就嘗試著安裝 yarn add @babel/parser --dev
或者 npm install --save-dev @babel/parser
安裝就出現 13458個的那個進度條,每次都有它。隨便npm install 一下,幾十分鐘完成不了,而且多數時候彈出的是出錯資訊。package.json裡面就幾個依賴包,node_modules資料夾卻有100多兆大小,關鍵是還沒怎麼編碼呢。真是費時間。
安裝了還是出錯
那就執行 npm run dev
吧,讓它自己執行吧,上一次是等了好久沒反應,所以執行npm install,出現上面的錯誤的,這次就一直讓它去吧……
等了十幾分鍾,出現這個錯誤
百度發現 (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
什麼的都刪除吧
然後執行 npm run dev 竟然成功了……
然後還原始碼,把 NODE_ENV=development
等都加回去,再執行 npm run dev
,尼瑪,又成功了……
總結一下,就是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.'));
}
結尾部分沒找到,不知道是哪個檔案。
待續