cretueusebiu / laravel-nuxt
一个Laravel-Nuxt启动项目模板。
3.0.0
2020-11-28 16:27 UTC
Requires
- php: ^7.3|^8.0
- fideloper/proxy: ^4.4
- fruitcake/laravel-cors: ^2.0
- guzzlehttp/guzzle: ^7.0.1
- laravel/framework: ^8.12
- laravel/socialite: ^5.0
- laravel/tinker: ^2.5
- laravel/ui: ^3.0
- tymon/jwt-auth: ^1.0.1
Requires (Dev)
- doctrine/dbal: ^2.12
- facade/ignition: ^2.5
- fakerphp/faker: ^1.9.1
- mockery/mockery: ^1.4.2
- nunomaduro/collision: ^5.0
- phpunit/phpunit: ^9.3.3
README
一个Laravel-Nuxt启动项目模板。
功能
- Nuxt 2
- Laravel 8
- SPA 或 SSR
- Socialite 集成
- VueI18n + ESlint + Bootstrap 4 + Font Awesome 5
- 登录、注册、邮箱验证和密码重置
安装
composer create-project --prefer-dist cretueusebiu/laravel-nuxt
- 编辑
.env
并设置数据库连接详情 - (通过 git clone 或下载安装时,运行
php artisan key:generate
和php artisan jwt:secret
) php artisan migrate
npm install
使用方法
开发
# start Laravel php artisan serve # start Nuxt npm run dev
在 https://:3000
访问您的应用程序。
生产
npm run build
启用 SSR
- 编辑
client/nuxt.config.js
并设置ssr: true
- 编辑
.env
以设置APP_URL=http://api.example.com
和CLIENT_URL=http://example.com
- 运行
npm run build
和npm run start
Nginx 代理
对于 Nginx,您可以通过以下 location 块添加代理
server {
location / {
proxy_pass http://http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
进程管理器
在生产环境中,您需要一个进程管理器以永久保持 Node 服务器运行
# install pm2 process manager npm install -g pm2 # startup script pm2 startup # start process pm2 start npm --name "laravel-nuxt" -- run start # save process list pm2 save # list all processes pm2 l
每次部署后都需要重新启动进程
pm2 restart laravel-nuxt
请务必阅读 Nuxt 文档。
Socialite
此项目以 GitHub 为示例,展示了 Laravel Socialite。
要启用提供者,请创建一个新的 GitHub 应用程序,并使用 https://example.com/api/oauth/github/callback
作为授权回调 URL。
编辑 .env
并使用 GitHub 应用程序的密钥设置 GITHUB_CLIENT_ID
和 GITHUB_CLIENT_SECRET
。
对于其他提供者,您可能需要在 config/services.php
中设置适当的密钥,并在 OAuthController.php
中设置重定向 URL。
邮箱验证
要启用邮箱验证,请确保您的 App\User
模型实现了 Illuminate\Contracts\Auth\MustVerifyEmail
协议。
注意事项
- 此项目使用 router-module,因此您必须手动在
client/router.js
中添加路由。 - 如果您想将此分为两个项目(客户端和服务器 API),请将
package.json
移入client/
并从脚本部分删除配置路径选项。同时,请确保在client/.env
中添加环境变量。
更新日志
有关最近更改的更多信息,请参阅 更新日志。