【发布时间】:2023-02-02 02:00:00
【问题描述】:
我昨天创建了我的第一个 Laravel Sail,但我在使用 Vue 时遇到了一个小问题,因为在单独的文件夹中创建前端让我有些头疼。因为有两个不同的package.json,一个在项目根目录中,另一个在前端文件夹中。因此,每当我需要执行 npm run dev 时,我都必须使用 --prefix 来指向前端文件夹。 npx 也有同样的问题,我必须通过选择工作区来指向前端!!!
我绝对怀疑我的做法有问题。那么,您能否指导我使用 Laravel Sail + Laravel 后端 api + Vue 前端的最佳实践?
我创建项目结构的步骤:
curl -s https://laravel.build/example-app | bash- 将
alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'添加到~/.bashrc - 从项目的根执行
sail up sail npm init vite frontendcd ./frontend-
sail npm i---> 错误,因为子文件夹中没有帆 cd ..sail npm i --prefix ./frontend-
sail npm run dev --prefix ./frontend---> 错误,因为它没有--host - 将
frontend/package.json修改为dev": "vite --host" sail npm run dev --prefix ./frontendsail npm install --prefix ./frontend/ -D tailwindcss postcss autoprefixer-
sail npx --prefix ./frontend/ tailwindcss init -p---> 错误npx不接受--prefix -
sail npx -w ./frontend/ tailwindcss init -p---> 错误,没有配置工作区! cd frontend/ln -s ../vendor/laravel/sail/bin/sail sail./sail npx tailwindcss init -prm ./sail-
cd ..如您所见,调用
--prefix是非常蹩脚的解决方案,最愚蠢的步骤是 13 ... 18,因为我需要通过创建符号链接然后再次删除它来找到解决方法......真的很蹩脚!顺便说一句,在第 17 步中,尽管当前路径是
./frontend但npx在项目的根目录中生成了条目package.json而不是frontend/package.json所以我手动将它们从package.json移动到frontend/package.json!
【问题讨论】:
-
是的,有一点不对。不要将前端应用程序放在后端应用程序中。这没有意义,他们有不同的 dep 集,唯一的共同点是前端
dist应该在构建时复制到后端public。 -
但是,如果我在 Laravel sail 应用程序中设置
frontend文件夹,我将无法再调用sail up或docker-compose up除非我手动修改由 Laravel sail 自动创建的docker-compose.yml(我不喜欢朝这个方向走) ) -
我懂了。我相信这个容器的设计方式很奇怪,不确定是否有处理它的好方法。通常你会在 Node 项目中避免这样的设置,这是不切实际的。我不确定为什么“sail”命令用于非 sail 的所有内容,即 Vue 项目。如果可能,应该是“npm i”等。无论如何,这是特定于容器的
-
是的,正因为如此,我正试图与 Laravel 的人保持一致(Sail 项目)
-
Sail 使用任何 Laravel Sail 项目自动配置 Vite,因为已经有
package.json
标签: php laravel vue.js npm laravel-sail