dart pub build:排除文件或目录
dart pub build: exclude a file or directory
在使用 dart 的 pub build
构建 Web 应用程序时,我试图排除文件或目录列表。
按照 documentation:
的建议使用它
transformers:
- simple_transformer:
$exclude: "**/CVS"
无效:
Error on line 10, column 3 of pubspec.yaml: "simple_transformer" is not a dependency.
- simple_transformer:
有没有办法(使用 SDK 1.10.0)?
simple_transformer
是要通知排除文件的转换器的名称。如果你想将它应用到 dart2js,你需要使用名称 $dart2js
而不是 simple_transformer
.
有关配置 $dart2js
的更多详细信息,请参阅 https://www.dartlang.org/tools/pub/dart2js-transformer.html
遗憾的是,目前不支持将文件标记为 pub build
已忽略,正如 Günter 已经提到的那样。 .gitignore
功能已被删除,因为它没有记录并且造成的问题比解决的问题多。
但是您可以从构建 output 中排除文件。这意味着文件仍在处理(并且仍然需要时间来处理 =/ )但不存在于输出目录中。这对于一次生成应用程序的可部署副本很有用。
在我们的应用程序中,我们使用一个简单的 ConsumeTransformer 将资产标记为已消耗,这样它们就不会写入输出文件夹:
library consume_transformer;
import 'package:barback/barback.dart';
class ConsumeTransformer extends Transformer implements LazyTransformer {
final List<RegExp> patterns = <RegExp>[];
ConsumeTransformer.asPlugin(BarbackSettings settings) {
if (settings.configuration['patterns'] != null) {
for (var pattern in settings.configuration['patterns']) {
patterns.add(new RegExp(pattern));
}
}
}
bool isPrimary(AssetId inputId) =>
patterns.any((p) => p.hasMatch(inputId.path));
void declareOutputs(DeclaringTransform transform) {}
void apply(Transform transform) => transform.consumePrimary();
}
消费者需要一个正则表达式模式列表作为参数并使用匹配的文件。您需要将转换器作为最后一个转换器添加到 pubspec.yaml 文件中:
transformers:
- ... # Your other transformers
- packagename/consume_transformer:
patterns: ["\.psd$"]
示例配置忽略所有具有 psd
扩展名的文件,但您可以根据需要添加模式。
我创建了一个包含转换器的pub包,看看here。
在使用 dart 的 pub build
构建 Web 应用程序时,我试图排除文件或目录列表。
按照 documentation:
transformers:
- simple_transformer:
$exclude: "**/CVS"
无效:
Error on line 10, column 3 of pubspec.yaml: "simple_transformer" is not a dependency.
- simple_transformer:
有没有办法(使用 SDK 1.10.0)?
simple_transformer
是要通知排除文件的转换器的名称。如果你想将它应用到 dart2js,你需要使用名称 $dart2js
而不是 simple_transformer
.
有关配置 $dart2js
的更多详细信息,请参阅 https://www.dartlang.org/tools/pub/dart2js-transformer.html
遗憾的是,目前不支持将文件标记为 pub build
已忽略,正如 Günter 已经提到的那样。 .gitignore
功能已被删除,因为它没有记录并且造成的问题比解决的问题多。
但是您可以从构建 output 中排除文件。这意味着文件仍在处理(并且仍然需要时间来处理 =/ )但不存在于输出目录中。这对于一次生成应用程序的可部署副本很有用。
在我们的应用程序中,我们使用一个简单的 ConsumeTransformer 将资产标记为已消耗,这样它们就不会写入输出文件夹:
library consume_transformer;
import 'package:barback/barback.dart';
class ConsumeTransformer extends Transformer implements LazyTransformer {
final List<RegExp> patterns = <RegExp>[];
ConsumeTransformer.asPlugin(BarbackSettings settings) {
if (settings.configuration['patterns'] != null) {
for (var pattern in settings.configuration['patterns']) {
patterns.add(new RegExp(pattern));
}
}
}
bool isPrimary(AssetId inputId) =>
patterns.any((p) => p.hasMatch(inputId.path));
void declareOutputs(DeclaringTransform transform) {}
void apply(Transform transform) => transform.consumePrimary();
}
消费者需要一个正则表达式模式列表作为参数并使用匹配的文件。您需要将转换器作为最后一个转换器添加到 pubspec.yaml 文件中:
transformers:
- ... # Your other transformers
- packagename/consume_transformer:
patterns: ["\.psd$"]
示例配置忽略所有具有 psd
扩展名的文件,但您可以根据需要添加模式。
我创建了一个包含转换器的pub包,看看here。