laravel - 我如何使用 laravel mix 和 git 管理前端 Assets ?

标签 laravel git assets laravel-mix

我正在使用 Mix(我猜这也适用于 Elixir)来管理我的前端 Assets 。我已将 Mix 配置为在生产中而不是在开发中对文件进行版本控制。因此,当我更新 Assets 时,我会在 dev 和 app.{hash}.js 中更新 app.jsapp.css 文件和生产中的 app.{hash}.css 文件。

对于如何将其与版本控制结合使用,您有何建议?

  1. 将文件置于版本控制中?如果是这样,我如何管理开发过程中的不断变化?继续添加新的散列文件?我是否将 app.js 和 app.css 留在生产服务器上?
  2. .gitignore js 和 css 文件并在生产服务器上运行 npm 以在本地编译 Assets ?
  3. 其他解决方案?

你对此有何看法?

提前致谢。

最佳答案

在我的工作场所,我们已经为不同的项目将 css/js 文件夹 .gitignore 了将近一年,只要让服务器在其构建步骤中处理 npm 就没有问题。

如果您使用 yarn,它会创建一个锁定文件,确保您在生产环境中获得完全相同的 js 依赖性。

当使用版本控制时,只需在您的脚本/css 标签上使用 mix() 帮助程序,它将通过公共(public)目录中的 mix-manifest.json 文件处理指向正确文件的操作。

例如:

layout/app.blade.php 有

<script src="{{ mix('js/app.js') }}"></script>

当你运行 npm mix 时,会像这样创建 public/mix-manifest.json 文件

{ "/js/app.js": "/js/app.{hash-example}.js" }

我看到的唯一问题是混合和使用 mix() helper 它似乎只在 npm watch 时有效正在运行,这是 elixir 之前处理得很好的事情,但是 mix 相对较新,所以它可能会得到解决,我自己还没有烦到去研究它,因为在开发过程中我总是运行 npm run hot它对任何 js 文件更改进行热重载。 -- 编辑:这似乎现在已修复

关于laravel - 我如何使用 laravel mix 和 git 管理前端 Assets ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42836918/

相关文章:

git - 如何维护两个或多个永不 merge 的发散分支?

git - 如何为包含空格的文件定义 .gitattributes 规则?

ios - 如何在 imageView 上设置自动布局约束以获得良好的分辨率图像?

laravel - AWS Iam 命令,在终端中正常工作,但在 Laravel/PHP AWS SDK 中不起作用

mysql - Laravel 错误查询插入

regex - zsh grep 模式匹配 ^ 不起作用

android - 当用户从手机/平板电脑上删除您的应用程序时,扩展文件是否会被删除?

android - 无法从 Android 中的 Assets 文件夹复制数据库

php - OctoberCMS 和 MySQL 的用户记录所有权

php - 试图获取非对象错误的属性 - Laravel