knpuniversity / webpack-encore-bundle
Requires
- php: ^5.5.9|>=7.0.8
- symfony/config: ^3.4 || ^4.0
- symfony/dependency-injection: ^3.4 || ^4.0
- symfony/http-kernel: ^3.4 || ^4.0
Requires (Dev)
- symfony/asset: ^3.4 || ^4.0
- symfony/framework-bundle: ^3.4 || ^4.0
- symfony/phpunit-bridge: ^3.4 || ^4.0
- symfony/twig-bundle: ^3.4 || ^4.0
- twig/twig: ^1.35 || ^2.0
This package is not auto-updated.
Last update: 2022-02-01 13:14:05 UTC
README
警告 此包 不再维护,请使用 symfony/webpack-encore-bundle 替代!!!
此包允许您通过读取 entrypoins.json
文件并帮助您渲染所有需要的动态 script
和 link
标签,来使用 Webpack Encore 的 splitEntryChunks()
功能。
使用以下命令安装此包:
composer require knpuniversity/webpack-encore-bundle
配置
如果您使用 Symfony Flex,则已完成!配方会在 config/packages/webpack_encore.yaml
文件中预先配置您需要的所有内容。
# config/packages/webpack_encore.yaml webpack_encore: # The path where Encore is building the assets - i.e. Encore.setOutputPath() output_path: '%kernel.public_dir%/build' # The public prefix to your assets that you normally use with the asset() function (e.g. build/) - # should match the "setManifestKeyPrefix()" value in webpack.config.js, if set. asset_path_prefix: 'build/'
用法
首先,在 Webpack Encore 中启用“分割块”功能。
// webpack.config.js
// ...
.setOutputPath('public/build/')
.setPublicPath('/build')
.setManifestKeyPrefix('build/')
.addEntry('entry1', './assets/some_file.js')
+ .splitEntryChunks()
// ...
当您启用 splitEntryChunks()
时,您可能现在需要多个脚本和链接标签,而不仅仅是 entry1.js
的一个脚本标签和 entry1.css
的一个链接标签。这是因为 Webpack “分割” 您的文件以进行更优化的目的。
为了帮助您,Encore 将编写一个包含每个“入口”所需的所有文件的 entrypoints.json
文件。
例如,为了渲染特定“入口”(例如 entry1
)的所有 script
和 link
标签,您可以
{# any template or base layout where you need to include a JavaScript entry #} {% block javascripts %} {{ parent() }} {{ encore_entry_script_tags('entry1') }} {% endblock %} {% block stylesheets %} {{ parent() }} {{ encore_entry_link_tags('entry1') }} {% endblock %}
假设 entry1
需要两个文件来包含 - vendor~entry1~entry2.js
和 entry1.js
,那么 encore_entry_script_tags()
等同于
<script src="{{ asset('build/vendor~entry1~entry2.js') }}"></script> <script src="{{ asset('build/entry1.js') }}"></script>
您的资产在 build/
公共前缀由配置文件设置。
如果您想要更多控制,可以使用 encore_entry_js_files()
和 encore_entry_css_files()
方法获取所需文件的列表,然后手动循环创建 script
和 link
标签。