我正在开发一个使用Symfony2的项目,它碰巧使用Assetic来管理css和js。
我习惯于吞噬/授予任务但不使用Symfony,我试图找到一种系统(或自动)方式来提取我在模板中使用的资产文件,将它们分组并用适当的树枝替换树枝中的资产块替代品。
我确信像这样的工具可以节省生命,并帮助将旧项目从Assetic迁移到现代任务运行器,因为它太有限了。
有关从哪里开始的任何建议?
答案 0 :(得分:2)
我从Assetic迁移到了gulp,但它不是一个自动化过程。
就我而言,我必须使用 7--1 模式更改所有前端架构。我还在Symfony项目的根目录中创建了一个gulpfile。您可以在Resources
文件夹中的某个包中创建它。
假设您不想更改文件位置,我建议您按照以下步骤操作:
package.json
正在运行 npm init app/Resources
文件夹。将资产存放在那里是一种最佳做法。例如,您可以为样式创建app/Resources/styles
文件夹,为脚本创建app/Resources/scripts
。添加任务以编译scss和js文件。
gulp.task('sass', function() {
return gulp.src('app/Resources/styles/main.scss')
.pipe($.sass())
.pipe(gulp.dest('web/css/'))
});
gulp.task('browserify', function() {
return browserify('app/Resources/scripts/main.js')
.transform("babelify", {presets: ["es2015"]})
.bundle()
.pipe(source('main.js'))
.pipe(gulp.dest('web/js'))
});
当然,browserify
任务会编译用ES6编写的所有javascript模块和浏览器。
最后,您可以添加观看任务,但这与问题无关。