2014-11-05 17 views
6

Trong this post Tôi đã tìm tôi sẽ tìm hiểu về các nhiệm vụ sbt và tạo ra các nhiệm vụ của riêng tôi. Tôi đã đạt đến một giai đoạn mà tôi đã tạo ra một nhiệm vụ chạy trước khi biên dịch và biên dịch sass của tôi.Nhiệm vụ SBT trước khi biên soạn không được thực hiện trong quá trình biên dịch được kích hoạt

val sassCompile = TaskKey[ Unit ]("sassCompile") 

sassCompile := { 
    SassCompiler.compile(baseDirectory.value) 
} 

watchSources <++= baseDirectory map { path => ((path/"app"/"assets") ** "*.scss").get } 

compile <<= (compile in Compile) dependsOn sassCompile 

tôi làm hai việc:

  1. Đảm bảo rằng mọi thay đổi đến SCSS gây nên biên soạn
  2. Trước khi biên soạn, biên dịch sass chạy

Vì vậy, những gì làm việc:

  1. Công cụ biên dịch được kích hoạt. Mỗi lần tôi thay đổi scala, trình kích hoạt biên dịch của mình. (Hành vi thông thường). Mỗi lần tôi thay đổi .scss bên trong đường dẫn đã đề cập: app/asset/**, trình kích hoạt biên dịch. Mọi thứ đều ổn.
  2. Khi tôi nhập thủ công biên dịch trên bảng điều khiển phát, trình biên dịch sass cũng kích hoạt và tôi có thể thấy thay đổi tệp css.

gì không hoạt động:

Khi biên soạn được kích hoạt tự động (nhờ gọi ~ biên dịch hoặc ~ chạy và sau đó thực hiện một sự thay đổi (hoặc thậm chí không thực hiện một sự thay đổi), Sass biên soạn không nhận được . Vì vậy, khi gọi tôi làm chơi ~ chạy, trình biên dịch sass của tôi không nhận được viện dẫn

EDIT:.. Nếu nó giúp, here là một câu hỏi tương tự

Trả lời

3

Bạn cần thay đổi dòng cuối cùng để:

compile in Compile <<= (compile in Compile) dependsOn sassCompile 

Giải thích cho điều này bạn có thể tìm thấy here trong phần "Khi nào cần chỉ định phạm vi".

+0

Rất tiếc, tôi đã bỏ đánh dấu mục này làm câu trả lời. Bởi vì điều này bây giờ tạo ra vấn đề cho mọi yêu cầu, công việc sassCompile của tôi chạy một số lượng lớn lần. Tôi không thể tìm thấy mẫu cho số lần, nhưng để đưa ra một ý tưởng tôi đã có nhiệm vụ chạy ít nhất 20 lần sau khi tôi yêu cầu một trang web. – 0fnt

+0

@ user247077 Bạn có thể viết thêm về vấn đề mới này không. Làm thế nào để bạn chạy ứng dụng của bạn, trong chế độ nào? Có thể sự cố này tương tự như [tihs] (https://groups.google.com/forum/#!msg/play-framework/a9xfBiyAI6s/N3qrbrOAAtwJ) – rtruszk

Các vấn đề liên quan