我使用Mix(这也适用于Elixir)我可以管理我的前端资产。我将Mix配置为生产中的版本文件,但不是dev。因此,当我更新资产时,我会在dev中更新app.js
和app.css
个文件,并在生产中获得app.{hash}.js
和app.{hash}.css
个文件。
您对如何在版本控制中利用此功能有何建议?
.gitignore
js和css文件并在生产服务器上运行npm以在本地编译资产?您对此有何看法?
提前致谢。
答案 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