2
Barback package描述:如何在資產變化自動運行變壓器
資產構建系統。給定一組輸入文件和一組 轉換(認爲編譯器,預處理器等), 將自動應用適當的轉換並生成輸出 文件。 當輸入被修改時,自動運行受影響的變換 。當 可能最大化響應能力時,運行異步和並行變換。
Docs on assets and transformers say:
對於酒吧服務,變壓器,當開發服務器啓動並 每當源資產變更運行。 pub build命令一次運行 變壓器,然後退出。
// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:barback/barback.dart';
import 'package:markdown/markdown.dart';
import 'dart:async';
class ConvertMarkdown extends Transformer {
// A constructor named "asPlugin" is required. It can be empty, but
// it must be present. It is how pub determines that you want this
// class to be publicly available as a loadable transformer plugin.
ConvertMarkdown.asPlugin();
// Any markdown file with one of the following extensions is
// converted to HTML.
String get allowedExtensions => ".md .markdown .mdown";
Future apply(Transform transform) {
return transform.primaryInput.readAsString().then((content) {
// The extension of the output is changed to ".html".
var id = transform.primaryInput.id.changeExtension(".html");
String newContent = "<html><body>"
+ markdownToHtml(content)
+ "</body></html>";
transform.addOutput(new Asset.fromString(id, newContent));
});
}
}
它運行如預期與pub build
,但不做任何處理pub serve
除了打印:
我每次CH時間構建成功完成
在目錄中添加任何文件(不僅僅是適當的資產)。
After reading this我認爲飛鏢在Windows平臺上觀看文件(不僅僅是目錄)時存在一些問題。
酒吧服務應該工作在Windows上,我與定製變壓器使用一整天。您希望在酒吧服務中發生什麼?您的磁盤上沒有文件被更改 - 它是一個dev服務器,因此您必須使用瀏覽器請求文件。 – Fox32
@ Fox32我希望每次修改資產時我的變壓器都會運行。在這種情況下,'.md .markdown .mdown'文件之一。但事實並非如此。 '酒吧服務'工作正常,但不會在「監視」模式下運行變壓器。可能我誤解了一些東西 – JAre
如果它輸出的「構建成功完成」比你的轉換器運行,但它沒有寫入任何文件到磁盤,它們只能通過在HTTP服務器中構建來訪問。 – Fox32