L01 学习记录
嗯,又回来了。晃了一圈,还是它最好。
社区更漂亮了。技术重要,氛围也很重要。
开了蓝灯,通过域名 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.'));
}
结尾部分没找到,不知道是哪个文件。
待续
本作品采用《CC 协议》,转载必须注明作者和本文链接