2016-03-04 81 views
4

我正在與Symfony2合作開發一個項目,它正好使用Assetic來管理css和js。有沒有一種方法來自動化遷移形式資產吞噬?

我習慣於吞嚥/授予任務,但沒有與Symfony,我試圖找到一種系統(或自動)的方式來提取我在我的模板中使用的資產文件,對它們進行分組並用樹枝替換分枝中的資產塊適當的選擇。

我確定像這樣的工具將成爲一種生活保護工具,並有助於將舊項目從Assetic遷移到現代任務運行器,因爲它太有限。

任何關於從哪裏開始的建議?

回答

2

我從Assetic遷移到一口吞,但它不是一個自動化過程。

在我的情況下,我不得不改變所有的前端架構,使用7--1模式。我還在Symfony項目的根目錄下創建了一個gulp文件。您可以在Resources文件夾中的某個包中創建該文件夾。

假設你不想改變你的文件的位置,我建議你遵循這個步驟:

  • 創建package.json運行NPM初始化
  • 安裝一飲而盡,browserify和你的需要包。
  • 將所有的css/scss文件移動到app/Resources文件夾中。把你的資產放在那裏是最好的做法。例如,您可以爲您的樣式創建app/Resources/styles文件夾,爲您的腳本創建app/Resources/scripts
  • 在某個包的根目錄或資源文件夾中創建一個gulpfile.js。
  • 將任務編譯成一個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與browserity的JavaScript模塊。

最後,您可以添加觀看任務,但與問題無關。

希望它有幫助。

問候。

+0

謝謝你的回答@Mario。即使在多個名稱空間和捆綁包的項目中,是否將資源放置在應用程序/資源中仍然是最佳實踐? –

+1

我意識到我不是後端開發人員,但我的隊友告訴我有關此最佳做法。你也可以把你的模板放在這個文件夾中。 http://symfony.com/doc/current/best_practices/templates.html –

+0

我試圖解決的主要問題,是一種提取模板中使用的當前資產路徑的方法,並且包含由任務運行者完成的正確路徑。這也可能是一項重大任務。但我不知道如何開始 –

相關問題