【问题标题】:Alternative to Webpack Encore in Symfony 4 that doesn't use node.jsSymfony 4 中不使用 node.js 的 Webpack Encore 的替代方案
【发布时间】:2018-05-16 11:16:55
【问题描述】:

我从 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 中已经放弃了对它的支持。我想要一些易于设置和使用的东西。

【问题讨论】:

    标签: php symfony webpack assets


    【解决方案1】:

    如果您对 node.js 的东西不满意(这是可以理解的),您仍然可以使用资产。

    来自 symfony 的文档:

    Assetic 是一个纯 PHP 库,有助于处理和优化您的 资产(类似于 Encore)。尽管我们推荐使用 Encore, Assetic 仍然很好用

    参考链接:https://symfony.com/doc/current/frontend.html

    缺点是你不能确定它是否仍然适用于 SF 的下一个专业更新,我同意,但未来可能会出现新的解决方案,因为你不是唯一一个抱怨它的人.


    为了跟进你的 cmets,使用配置的 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
    

    虽然没有测试它,但请让我们更新您的测试。可能有点意思。

    【讨论】:

    • 我没有注意到那段,但是当您查看资产文档(对于版本 4.0 - symfony.com/doc/current/frontend/assetic.html)时,它只是说建议不要使用它。我会看看assetic是否可以在4.x中工作,但我不认为它会被设置为使用新的目录结构(资产等)。我也犹豫是否要实施它,因为它可能会停止任何升级。
    • 另一个需要关注的地方是github.com/symfony/assetic-bundle/issues/453
    • 您可以配置源目录和目标目录(参见symfony.com/doc/3.3/reference/configuration/assetic.html)。不错的补充@MicWit
    • 如果你的意思是 read_from 和 write_to,我很确定 read_from 必须在公共(是 web)目录中。明天我会看看能否让它与资产目录一起使用。
    • 好的,所以似乎assetic甚至不会安装在Symfony 4.x中,因为它不满足作曲家的要求。这将需要更新 github 上的资产包以使其安装,更不用说工作了。需要添加 4.x 版本以与 composer 兼容。
    猜你喜欢
    • 2020-05-23
    • 2020-03-09
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 2020-05-14
    • 2019-03-04
    • 2021-03-23
    • 1970-01-01
    相关资源
    最近更新 更多