首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用Symfony Webpack Encore将生成的资产拆分到单独的文件夹中

Symfony Webpack Encore是一个用于前端资源管理和构建的工具,它可以帮助开发人员将生成的资产拆分到单独的文件夹中。下面是使用Symfony Webpack Encore实现这一目标的步骤:

  1. 首先,确保你已经安装了Symfony和Webpack Encore。你可以通过运行以下命令来安装Webpack Encore:
代码语言:txt
复制

yarn add @symfony/webpack-encore --dev

代码语言:txt
复制
  1. 在项目的根目录下创建一个webpack.config.js文件,并在其中配置Webpack Encore。以下是一个示例配置:
代码语言:javascript
复制

const Encore = require('@symfony/webpack-encore');

Encore

代码语言:txt
复制
   .setOutputPath('public/build/') // 设置输出路径
代码语言:txt
复制
   .setPublicPath('/build') // 设置公共路径
代码语言:txt
复制
   .addEntry('app', './assets/js/app.js') // 添加入口文件
代码语言:txt
复制
   .splitEntryChunks() // 将生成的资产拆分为多个文件
代码语言:txt
复制
   .enableSingleRuntimeChunk() // 启用单个运行时文件
代码语言:txt
复制
   .cleanupOutputBeforeBuild() // 在构建之前清理输出目录
代码语言:txt
复制
   .enableSourceMaps(!Encore.isProduction()) // 启用源映射
代码语言:txt
复制
   .enableVersioning(Encore.isProduction()) // 启用版本控制
代码语言:txt
复制
   .enableSassLoader() // 启用Sass加载器
代码语言:txt
复制
   .enablePostCssLoader() // 启用PostCSS加载器
代码语言:txt
复制
   .enableVueLoader(); // 启用Vue加载器

module.exports = Encore.getWebpackConfig();

代码语言:txt
复制

在上面的配置中,.setOutputPath()方法用于设置输出路径,.setPublicPath()方法用于设置公共路径,.addEntry()方法用于添加入口文件,.splitEntryChunks()方法用于将生成的资产拆分为多个文件,.enableSingleRuntimeChunk()方法用于启用单个运行时文件,.cleanupOutputBeforeBuild()方法用于在构建之前清理输出目录,.enableSourceMaps()方法用于启用源映射,.enableVersioning()方法用于启用版本控制,.enableSassLoader()方法用于启用Sass加载器,.enablePostCssLoader()方法用于启用PostCSS加载器,.enableVueLoader()方法用于启用Vue加载器。

  1. package.json文件中添加以下脚本:
代码语言:json
复制

"scripts": {

代码语言:txt
复制
   "dev": "encore dev",
代码语言:txt
复制
   "watch": "encore dev --watch",
代码语言:txt
复制
   "build": "encore production"

}

代码语言:txt
复制

这些脚本将用于开发、监视和构建资产。

  1. 运行以下命令来构建资产:
代码语言:txt
复制

yarn build

代码语言:txt
复制

这将生成拆分到单独文件夹中的资产。

通过以上步骤,你可以使用Symfony Webpack Encore将生成的资产拆分到单独的文件夹中。这样做的好处是可以更好地组织和管理前端资源,并提高应用程序的性能和加载速度。

推荐的腾讯云相关产品:腾讯云对象存储(COS)。腾讯云对象存储(COS)是一种高扩展性、低成本的云端存储服务,适用于存储和处理任意类型的文件,包括文本、图片、音频、视频等。它提供了高可靠性、高可用性和高持久性的存储能力,可以满足各种应用场景的需求。

腾讯云对象存储(COS)产品介绍链接地址:https://cloud.tencent.com/product/cos

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在 Laravel 项目中使用 webpack-encore

至于为什么放弃 laravel-mix,主要是因为它维护状况堪忧,不仅更新节奏缓慢,许多 Issue 久悬未决,更重要是,作者似乎很多 bug 完全寄希望于 webpack5,哪怕有热心人士 PR...webpack-encoreSymfony 官方前端集成构建工具,同样是基于 webpack,但它 API 设计得更为友好,而且文档更完善,当然更关键一点是,坑更少啊……从开始读它文档,倒把手里一个项目从...安装依赖 首先当然是安装依赖 yarn add -D @symfony/webpack-encore 需要注意是,webpack-encore 没有像 laravel-mix 那样在自己内部依赖 vue-tempplate-compiler... develop 等相关脚本都是使用 laravel-mix ,为了方便日常开发,现在要对它们进行一些调整,改用 webpack-cocore。...虽然 webpack-encore 是作为 Symfony 默认集成工具来设计,但这并不妨碍它在 Laravel 中发挥强大威力。

2.1K20
  • Webpack 性能系列四:分包优化

    2.1 什么是 Chunk 在《有点难知识点:Webpack Chunk 分包规则详解》一文,我们已经了解到 Chunk 是打包产物基本组织单位,读者可以等价认为有多少 Chunk 就会对应生成多少产物...node_modules 资源单独打包到 vendors-xxx-xx.js 命名产物 对引用次数大于等于 2 模块,也就是被多个 Chunk 引用模块,单独打包 开发者也可以默认分组设置为...:彻底理解 Webpack 运行时》一文,已经比较深入介绍 Webpack 运行时概念、组成、作用与生成机制,大致上我们可以运行时理解为一种补齐模块化、异步加载等能力应用骨架,用于支撑 Webpack...运行时代码内容由业务代码所使用特性决定,例如当 Webpack 检测到业务代码中使用了异步加载能力,就会将异步加载相关运行时注入到产物,因此业务代码用到特性越多,运行时就会越大,有时甚至可以超过...此时,可以 optimization.runtimeChunk 设置为 true,以此运行时代码拆分到一个独立 Chunk,实现分包。 四、最佳实践 那么,如何设置最适合项目情况分包规则呢?

    4.5K10

    webpack基础、分包大揭秘

    导语 | 若你对webpack仅仅是处于使用阶段,觉得webpack原理太杂太乱太多,但是觉得大概了解下webpack大致原理也不错。亦或是想要了解分包优化如何进行配置呢?...当在webpack环境应用一个插件时,插件收到此compiler对象引用,可以使用它来访问webpack主环境。对于plugin而言,通过它来注册事件钩子。...compiler.emitAssets阶段: assets写入文件系统 综上,Module主要作用在webpack编译过程前半段,解决原始资源“如何读”问题;而Chunk对象则主要作用在编译后半段...运行完毕之后webpack继续 chunk一一写入物理文件,完成编译工作。...对引用次数大于等于2模块,也就是被多个Chunk引用模块,单独打包。 七、SplitChunksPlugin最佳实战 那么,如何设置最适合项目情况分包规则呢?

    1.5K10

    如何创建修改远程仓库 + 如何删除远程仓库 + 如何删除远程仓库某个文件或文件夹 + 如何使用git本地仓库连接到多个远程仓库

    三、删除Github已有的仓库(即删除远程仓库) 三箭齐发,太累了,以下演示仅以GitHub为例。其余同理。 如果我们想要删除Github没有用仓库,应该如何去做呢?...四、远程仓库Clone(下载/复制)到本地 注意1:演示我们使用连接仓库客户端软件是:Git Bash 注意2:演示我们使用连接仓库方式是:https 1、远程仓库地址由来如下: ?...六、删除Github已有的仓库某个文件或文件夹(即删除远程仓库某个文件或文件夹) 我们知道,在Github上我们只能删除仓库,并不能删除文件或者文件夹,所以只能用命令来解决。...6.1、本地仓库和远程仓库同时删除文件或文件夹 1、我们先在本地仓库删除掉文件a.txt ? 2、然后执行以下命令,即可删除远程仓库文件了 ? 删除远程仓库文件夹同理。不在演示。...七、如何使用git本地仓库连接到多个远程仓库 1、先在GiuHub(国外)、Gitee码云(国内) 和 Coding(国内) 上分别新建一个远程仓库,参考“二、创建远程仓库”。

    7.4K21

    webpack4 之 cacheGroups 分包【究极奥义】

    report.html;'disabled': 配合 generateStatsFile 使用; generateStatsFile: false, // 是否生成stats.json文件...结合以上分析图和 test warning,很明显,我们需要思考: Echarts 体积大小不能忽视,如何处理它?是首页加载还是异步加载?要按需引入吗? vue.js 等库还能不能再?...优化结果 淦完后得出如下打包分析图: 本瓜成功打包大小从 3.1MB 变成了 2.36MB,文件数从 68个 打包到了 43个 !!!,既实现了包(公共库),也实现了并包(合并极小包)。...虽然这不会是最终结果,但本瓜可以先下一个结论: 配置 cacheGroups,权衡包与并包二者,便是 webpack 分包究极奥义!...chunk分享最小值 reuseExistingChunk 表示是否使用已有的 chunk,true 则表示如果当前 chunk 包含模块已经被抽取出去了,那么将不会重新生成,即几个 chunk

    1.2K20

    Encore 进行视频转码

    encore如何在 SVT VoD 流水线中保证并行质量和稳定性。...例如使用云服务器代替本地服务器进行转码,或是使用分布式转码,原始视频分片,分片视频放到云服务器中进行转码,实现快速且高质量转码。...当该 job 按照优先级排列到队列头部时,将其从队列取出,进行转码; 收集即将到来转码任务所需元数据,例如,分析输入文件,读取配置文件,生成 FFmpeg 命令,并将其传给一个 encore 实例...输入视频文件放入 analyser 类,它会自动分析视频格式,并输出矩阵或 zip 文件, profile 、特殊指令和 analyser 输出全部放入 command builder 后就可以生成...应用 encore 应用场景 encore 一个应用场景是 procedural transcoding ,在使用 encore 时,可以设置 queue 保证必须处理内容首先转码,并打包发布发布后

    10.5K50

    如何在Ubuntu 14.04上将Symfony应用程序部署到生产环境

    本教程介绍在Ubuntu 14.04服务器上手动部署基本Symfony应用程序所需步骤。我们将了解如何正确配置服务器,考虑安全性和性能指标,以便完成准备生产设置。...首先,我们需要允许用户使用www-data访问应用程序文件夹文件。在整个目录为此用户授予读取+执行权限(rX)。...clear --env=prod --no-debug 输出应如下所示: Clearing the cache for the prod environment with debug false 最后,生成应用程序资产...我们看到如何在LEMP和LAMP环境完成这些步骤。 Nginx + PHP-FPM配置步骤 让我们从编辑默认文件php.ini开始,定义服务器时区。...结论 任何应用程序部署到生产环境需要特别注意细节,例如创建具有有限访问权限专用数据库用户以及在应用程序文件夹上设置正确目录权限。这些步骤对于提高生产环境服务器和应用程序安全性是必需

    12.7K20

    webpack 学习笔记系列06-打包优化

    (魔法注释),注意:若 minSize 设置较大,不会单独拆出 vendors~a.js lodash 为同一个 a-lodash.js(魔法注释) all: 推荐,在 initial 基础上尽可能生成复用代码...魔法注释 import(/* webpackChunkName: "react" */ 'react'); // 可以设置生成 bundle 名称 使用 webpack-bundle-analyzer...需要单独为 dll 文件创建一个配置文件,通过 DLLPlugin 插件第三方依赖打包到 bundle 文件,并生成 manifest.json 文件,在项目的 webpack 配置文件中使用 DllReferencePlugin...// 单独 dll 打包配置文件 webpack.config.dll.js const webpack = require('webpack'); const vendors = ['react'...Webpack 通过分析 ES6 模块引入和使用情况,去除不使用 import 引入;此外,可以借助工具如 uglifyjs-webpack-plugin 和 terser-webpack-plugin

    1.9K201

    前端-手摸手,带你用合理姿势使用 webpack 4(上)

    由于本次手摸手篇幅有些长,所以拆解成了上下两篇文章: 上篇 -- 就是普通在 webpack3基础上升级,要做哪些操作和遇到了哪些坑 下篇 -- 是在 webpack4下怎么合理打包和包,并且如何最大化利用...升级 webpack 首先将 webpack 升级到 4 之后,直接运行 webpack--xxx是不行,因为新版本命令行相关东西单独了出去封装成了 webpack-cli。... css 独立包最大好处就是 js 和 css 改动,不会影响对方。比如我改了 js 文件并不会导致 css 文件缓存失效。...这个真的蛮过分,稍不注意就会让自己 css 文件缓存无效。而且很多用户平时修改代码时候都不会在意自己最终打包出来 dist文件夹到底有哪些变化。所以这个问题可能就一直存在了。浪费了多少资源!...人艰不!大家觉得 webpack 难用不是没道理

    1.3K50

    Lerna+webpack+juction来拆分组件库为多个单独npm包

    本文作者:IMWeb DeepKolos 原文出处:IMWeb社区 未经同意,禁止转载 前不久发布了vc-popup组件集, 但是那时候完全只是展示没有如何使用教程, 因为当时急于发布出来,...区别在于是否使用webpack来做项目构建(或者其他打包工具, 不清楚webpack打包出来模块里面声明外部依赖, 再通过其他工具打包是否可以兼容) 如果是通过Vue.use()来注入vue依赖,...node_modules文件夹就好了, 效率提高不少, 这里通过mklinkjunction方式同步就好了 不过使用自定义使用juction时候最好记录到一下文档, 把juction设置写到初始化脚本里面...如果使用文件复制来实现同步方式也是可行, 不过注意, 不要删除node_modules/vc-popup-base文件夹, 再复制该文件夹, 因为开dev server时候会因为无法找到文件夹而中断...lerna来包, vant有packages但是里面的子目录不包含package.json可能还没引用lerna吧 weex-ui虽然是使用了lerna来包, 但是package.json直接使用源码作为入口

    1.1K30

    浅入webpack4 高效简单配置

    前言 在vue-cli3已经webpack等详细配置(config)去除,我们配置webpack只能在vue.config.js里进行配置,这里我个人总结了一套webpack优化方案模板并且附有我个人讲解...想了解happypack原理机制可以参考下面这篇文章,我主要讲解如何使用,不作过多剖析。...2.拆分每个 npm 包 当我们运行项目并且打包时候,会发现chunk-vendors.js这个文件非常大,那是因为webpack所有的依赖全都压缩到了这个文件里面,这时我们可以将其拆分,所有的依赖都打包成单独...这里可以利用splitChunks每个依赖包单独打包,拆分每个npm包。...// 在disabled模式下,你可以使用这个插件来generateStatsFile设置为true来生成Webpack Stats JSON文件。

    1K20

    Lerna+webpack+juction来拆分组件库为多个单独npm包

    前不久发布了vc-popup组件集, 但是那时候完全只是展示没有如何使用教程, 因为当时急于发布出来, 实在不妥, 抱歉~ 既然是想自己东西可以让别人方便使用, 那就是打包成npm包咯, 但是考虑vc-popup...仅仅是popup组件集, 不是完整组件库, 所以很多时候用户仅仅想使用某个popup, 那么其他popup也打包进去, 就浪费带宽了, 所以需要一个每个popup单独发布到npm上去, 但是把依赖分开时候之后开发就是带来不便...node_modules文件夹就好了, 效率提高不少, 这里通过mklinkjunction方式同步就好了 不过使用自定义使用juction时候最好记录到一下文档, 把juction设置写到初始化脚本里面...如果使用文件复制来实现同步方式也是可行, 不过注意, 不要删除node_modules/vc-popup-base文件夹, 再复制该文件夹, 因为开dev server时候会因为无法找到文件夹而中断...lerna来包, vant有packages但是里面的子目录不包含package.json可能还没引用lerna吧 weex-ui虽然是使用了lerna来包, 但是package.json直接使用源码作为入口

    3.6K101

    前端-手摸手,带你用合理姿势使用webpack4(下)

    比如我有一个管理后台,它大部分页面都是表单和 Table,我使用了一个第三方 table 组件,几乎后台每个页面都需要它,但它体积也就 15kb,不具备单独标准,它就这样被打包到每个页面的 bundle...我们不时会升级 UI 组件库来解决一些现有的 bugs 或使用一些新功能。所以建议 UI 组件库也单独拆成一个包。...    },     elementUI: {       name: "chunk-elementUI", // 单独 elementUI 包       priority: 20, /...还是这些组件打包到各自 bundle ?还是调整一下 minChunks: 2( 最小共用次数)?或者修改一下它包规则?...单独抽离 runtimeChunk 之后,每次打包都会生成一个runtimeChunk.xxx.js。

    1.3K30

    搭建vue2.0脚手架

    创建一个基于 webpack 模板新项目   vue init webpack my-project 3....src/ 这是你大部分应用程序代码所在位置。如何构建此目录所有内容,主要取决于您; 如果您使用Vuex,您可以查阅Vuex应用程序建议。...static/ 此目录是您不想使用Webpack进行处理静态资源一个逃生舱口。 它们直接复制到生成webpack建立资产同一个目录。 有关详细信息,请参阅处理静态资产。...index.html 这是我们单页应用程序模板index.html。 在开发和构建期间,Webpack生成资产,并将生成资产URL自动注入到此模板以呈现最终HTML。...其他修改 4.1 开发环境端口修改 修改/config/index.js 4.2 打包静态文件夹名称修改 修改/config/index.js 4.3 index.html文件自动注入代码压缩配置

    95610

    【Vuejs】317- 提升90%加载速度——Vuecli下首屏性能优化

    可以看到 项目中所有的依赖,所有的路由,都被打包进了同一个文件 另外,在浏览器,也可以通过 converge来查看代码使用状况 ?...table就被拆分到了路由文件 组件重复打包 可以看到上图,有两个路由文件都引用了 codemirror.js造成重复下载 我们可以在 webpack config文件,修改 CommonsChunkPlugin...首页下载了黄色和灰色部分 了半天,又回到原点 当然,我们可以继续折腾 CommonsChunkPlugin配置来解决这个问题 但在新版 webpack, CommonsChunkPlugin被自由度更高...,更高级 SplitChunksPlugin代替 这也是为什么我要把项目迁移到 vuecli 3(使用 webpack4) 默认就做了优化,首页只会下载灰色部分( 235K) gzip 完包之后,...打包出来文件,直接就没有了 css文件夹 取而代之是整合起来一个 js文件,负责在一开始就注入所有的样式 首屏加载文件数减少,但体积变大,最终测下来速度没有太大差异 所以,是否要css拆分就见仁见智

    2.9K20

    vue-cli首屏优化技巧

    可以看到 项目中所有的依赖,所有的路由,都被打包进了同一个文件 另外,在浏览器,也可以通过 converge来查看代码使用状况 ?...table就被拆分到了路由文件 组件重复打包 可以看到上图,有两个路由文件都引用了 codemirror.js造成重复下载 我们可以在 webpack config文件,修改 CommonsChunkPlugin...首页下载了黄色和灰色部分 了半天,又回到原点 当然,我们可以继续折腾 CommonsChunkPlugin配置来解决这个问题 但在新版 webpack, CommonsChunkPlugin被自由度更高...,更高级 SplitChunksPlugin代替 这也是为什么我要把项目迁移到 vuecli 3(使用 webpack4) 默认就做了优化,首页只会下载灰色部分( 235K) gzip 完包之后,...打包出来文件,直接就没有了 css文件夹 取而代之是整合起来一个 js文件,负责在一开始就注入所有的样式 首屏加载文件数减少,但体积变大,最终测下来速度没有太大差异 所以,是否要css拆分就见仁见智

    97410

    webpack配置完全指南_2023-03-01

    : 较小输出包体积 浏览器更快代码执行速度 忽略开发代码 不公开源代码或文件路径 易于使用输出资产 development 模式会给予你最好开发体验: 浏览器调试工具 快速增量编译可加快开发周期...,chunks: all 会自动 node_modules 所有内容放入一个名为 vendors〜main.js 文件。...抽离 css optimize-css-assets-webpack-plugin:压缩 css add-asset-html-webpack-plugin: JavaScript 或 CSS 资产添加到...html-webpack-plugin 生成 HTML 更多插件可见:plugins 八、配置devtool:source map 配置 webpack 如何生成 Source Map,用来增强调试过程...九、配置性能 performance 当打包是出现超过特定文件限制资产和入口点,performance 控制 webpack 如何通知: module.exports = { // 配置如何显示性能提示

    3.4K10

    webpack配置完全指南

    production 模式下给你更好用户体验: 较小输出包体积 浏览器更快代码执行速度 忽略开发代码 不公开源代码或文件路径 易于使用输出资产 development 模式会给予你最好开发体验...,chunks: all 会自动 node_modules 所有内容放入一个名为 vendors〜main.js 文件。...抽离 css optimize-css-assets-webpack-plugin:压缩 css add-asset-html-webpack-plugin: JavaScript 或 CSS 资产添加到...html-webpack-plugin 生成 HTML 更多插件可见:plugins 八、配置devtool:source map 配置 webpack 如何生成 Source Map,用来增强调试过程...九、配置性能 performance 当打包是出现超过特定文件限制资产和入口点,performance 控制 webpack 如何通知: module.exports = { // 配置如何显示性能提示

    3K20

    升级你webpack(下)-- webpack入门教程(三)

    区别: [hash]:每次webpack在编译过程中会生成唯一hash值,项目中任何一个文件改动后就会被重新创建,然后webpack会计算新hash值。...但这样只能应付简单场景,在大型多页面应用,往往需要对页面进行优化,涉及包、分模块加载: (1)分离业务代码和第三方代码:之所以业务代码和第三方代码分离出来,是因为业务代码更新频率高,而第三方代码更新迭代速度慢...(3)在多页面应用,我们往往可以公共模块进行抽离,比如 header, footer 等等,这样页面在进行跳转时候这些公共模块因为存在于缓存里,就可以直接进行加载了,而不是再进行网络请求了。...那么如何进行包,分模块进行加载呢? 在webpack4之前,可以使用webpack 内置插件:CommonsChunkPlugin。...,当然如果想使用第三方压缩插件也可以在optimization.minimizer数组列表中进行配置,例如这样配置: //在optimization.minimizer数字列表配置,使用第三方压缩插件

    3.4K600
    领券