php - Symfony 4 中不使用 node.js 的 Webpack Encore 的替代方案
问题描述
我从 3.x 时代开始就一直在使用 Symfony,并希望在 4.x 上创建新站点。乍一看似乎还可以(仅查看演示站点),但是,我不喜欢 webpack encore 的想法。
当我安装演示时,由于项目所在的子文件夹导致链接被搞砸了,我发现这是因为我需要更新 webpack encore 中的设置,但是,我无法部署更改,因为我没有安装 node.js,我运行 apache。
目前大多数 cpannel 托管都不支持 node.js,所以依赖 node.js 似乎很愚蠢!我知道我可以在本地服务器上进行部署,然后将部署的版本发送到在线服务器,但这可能只是在问问题,我想在类似于生产环境的环境中进行所有开发。
正因为如此,我正在研究 Symfony 4 中的选项来进行资产管理,它不需要像 node.js(甚至是 yarn)这样的另一个服务器环境。我过去使用过assetic,但在Symfony 4 中已经放弃了对它的支持。我想要一些易于设置和使用的东西。
解决方案
如果您对 node.js 的东西不满意(这是可以理解的),您仍然可以使用资产。
来自 symfony 的文档:
Assetic 是一个纯 PHP 库,有助于处理和优化您的资产(类似于 Encore)。即使我们推荐使用 Encore,Assetic 仍然很好用
参考链接:https ://symfony.com/doc/current/frontend.html
缺点是你不能确定它是否仍然适用于 SF 的下一个专业更新,我同意,但未来可能会出现新的解决方案,因为你不是唯一一个抱怨它的人。
为了跟进您的评论,使用assets
配置部分让他在您想要的任何地方获取文件,我正在考虑类似(赋予文件夹适当的权限):
assetic:
/* ... */
read_from: %kernel.root_dir%/../build
write_to: %kernel.root_dir%/../build
/* ... */
assets:
common:
inputs:
- %kernel.root_dir%/../assets/js/your_file1.js
- %kernel.root_dir%/../assets/js/your_file2.js
isolatedFileExample:
inputs:
- %kernel.root_dir%/../assets/js/your_file3.js
虽然没有测试,但请让我们更新您的测试。可能有点意思。
推荐阅读
- css - WordPress中的文字没有环绕图像
- html - div之间的线
- google-colaboratory - Tensorflow:未定义符号:_ZN10tensorflow11GetNodeAttrERKNS_9AttrSliceEN4absl14lts_2020_09_2311string_viewEPSs
- html - How to send a response from Django view function to a HTML popup windows
- python - 如何将不同列中的 Top3 预测和概率分数添加到 pandas 数据框
- eleventy - 如何在 Eleventy 中使用 LiquidJS 布局块?
- python - 我在哪里可以找到 NumPy 对象的“格式”字段的完整描述,其中包括“复杂”的“Z”?
- powershell - 删除空文件夹 - PowerShell
- jmeter - 无法为分布式负载测试生成 JMeter HTML 报告
- c# - 如何禁用特定建议出现在消息选项卡中,但将它们内嵌在 Visual Studio 2019 中