资产构建系统。给定一组输入文件和一组 转换(想想编译器,预处理器等),会 自动应用适当的变换并生成输出 文件。 修改输入后,自动运行转换 受影响。运行时异步和并行转换 可以最大限度地提高响应能力。
Docs on assets and transformers say:
对于pub serve,变换器在dev服务器启动时运行 每当源资产发生变化时。 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
执行任何操作:
构建成功完成
每次我更改目录中的任何文件(不仅是适当的资产)。
After reading this我认为Dart在Windows平台上观看文件(不仅是目录)时遇到了一些问题。
答案 0 :(得分:4)
pub serve
确实在每次修改文件后运行变换器。但与pub构建相比,它不会将结果输出到build/
文件夹。 pub serve
是一个开发服务器,因此您需要通过HTTP向资源请求,例如在浏览器中。
有关详细信息,请参阅pub serve
文档