如何使用laravel mix和git管理前端资产?

时间:2017-03-16 14:28:26

标签: git laravel assets mix

我使用Mix(这也适用于Elixir)我可以管理我的前端资产。我将Mix配置为生产中的版本文件,但不是dev。因此,当我更新资产时,我会在dev中更新app.jsapp.css个文件,并在生产中获得app.{hash}.jsapp.{hash}.css个文件。

您对如何在版本控制中利用此功能有何建议?

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

    提前致谢。

2 个答案:

答案 0 :(得分:5)

在我的工作场所,我们为.cit / js文件夹提供了近一年的css / js文件夹,对于不同的项目没有任何问题,只是让服务器处理npm作为其构建步骤的一部分。 / p>

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

使用版本控制时,只需在脚本/ css标记上使用mix()帮助程序,它就可以通过公共目录中的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()帮助程序,它似乎仅在npm watch运行时起作用,这是elixir以前处理得很好但是混合是相对的新的,所以它可能得到解决,我自己已经厌倦了调查它,因为在开发过程中我总是运行npm run hot,它会对任何js文件更改进行热重新加载。 - 编辑:现在似乎已修复

答案 1 :(得分:0)

使用nginx将app。{hash} .js重写为app.js并将其添加到gitignore