gulp (& symfony): 使用资产
gulp (& symfony): working with assets
我需要在遗留应用程序的 symfony 中实现 gulp。遗留 <-> symfony 应用程序部分正在运行,但我有点卡在 gulp <-> symfony 部分。 'web' 文件夹在我们的应用程序中称为 html。在此文件夹中,我有一个用于库的组件文件夹,例如 bootstrap、jquery、...和 js、css、图像、...文件夹。在我们的 js 文件夹中,我们有一个 config 文件夹,其中包含一些库(例如 dataTables)的默认配置和一个 extensions 文件夹,其中包含扩展(例如 jquery 扩展),旁边是一些自写的 js 文件。我需要将这些 config/extension 文件与 js 库文件合并。
我的想法是创建一个包含所有资产的 json 对象(称为模块)。然后,我会遍历这个模块对象,并在需要时调用 gulp 任务。
例如:
`var modules = {
bootstrap : {
css: ['/html/components/bootstrap/css/bootstrap.min.css, html/css/layout.css'],
fonts: ['html/components/bootstrap/fonts/*'],
js: ['/html/components/bootstrap/js/bootstrap.min.js']
}, ...
};`
对于 bootstrap,我会调用一个 gulp 任务来缩小和合并 css 文件并更新 url 和导入,一个任务将字体复制到 html/fonts 文件夹和将 js 文件复制到 html/js
的任务
这是一个好方法吗?还是有更好的方法来管理 symfony 中的资产? (我知道你有 Assetic 包,但我们有时确实使用 es6,所以我们需要 gulp 用 babel 翻译一些 js 文件,这是不可能的(据我所知,用 Assetic)
我会回答我自己的问题,因为它可能会帮助其他人。
Symfony 引入了 'encore' 资产管理。有一个chapter about encore。 Encore 使用 webpack,这是一个众所周知的模块打包器。
我需要在遗留应用程序的 symfony 中实现 gulp。遗留 <-> symfony 应用程序部分正在运行,但我有点卡在 gulp <-> symfony 部分。 'web' 文件夹在我们的应用程序中称为 html。在此文件夹中,我有一个用于库的组件文件夹,例如 bootstrap、jquery、...和 js、css、图像、...文件夹。在我们的 js 文件夹中,我们有一个 config 文件夹,其中包含一些库(例如 dataTables)的默认配置和一个 extensions 文件夹,其中包含扩展(例如 jquery 扩展),旁边是一些自写的 js 文件。我需要将这些 config/extension 文件与 js 库文件合并。
我的想法是创建一个包含所有资产的 json 对象(称为模块)。然后,我会遍历这个模块对象,并在需要时调用 gulp 任务。
例如:
`var modules = {
bootstrap : {
css: ['/html/components/bootstrap/css/bootstrap.min.css, html/css/layout.css'],
fonts: ['html/components/bootstrap/fonts/*'],
js: ['/html/components/bootstrap/js/bootstrap.min.js']
}, ...
};`
对于 bootstrap,我会调用一个 gulp 任务来缩小和合并 css 文件并更新 url 和导入,一个任务将字体复制到 html/fonts 文件夹和将 js 文件复制到 html/js
的任务这是一个好方法吗?还是有更好的方法来管理 symfony 中的资产? (我知道你有 Assetic 包,但我们有时确实使用 es6,所以我们需要 gulp 用 babel 翻译一些 js 文件,这是不可能的(据我所知,用 Assetic)
我会回答我自己的问题,因为它可能会帮助其他人。
Symfony 引入了 'encore' 资产管理。有一个chapter about encore。 Encore 使用 webpack,这是一个众所周知的模块打包器。