如何排除 public 文件夹中的图像文件

how to exclude image files within public folder

public文件夹中,我有两个文件夹hksg,它们有不同的图像文件。
我想要的是如果我构建 hk 包,我只从 hk 文件夹复制图像。
如何排除ember-cli中的sg文件夹?

Ember 使用 Broccoli.js for it's build pipeline. Broccoli is build around the concept of trees. Please have a look in it's documentation 获取详细信息。

您可以使用名为 broccoli-funnel 的插件从树中排除文件。它需要一个输入节点,该节点可以是作为字符串的目录名称,也可以是作为第一个参数的现有西兰花树。配置对象应作为第二个参数提供。应排除的文件或文件夹可以通过该对象的 exclude 选项指定。

ember-cli-build.js 的构建过程中创建了一棵西兰花树。从该文件导出的函数应该 return 一棵树。默认情况下,它 return 是 app.toTree() 直接创建的树。但是您可以之前使用 broccoli-funnel 自定义该树。

此差异显示了如何自定义 Ember CLI 3.16.0 蓝图提供的默认 ember-cli-build.js 以排除特定文件:

diff --git a/ember-cli-build.js b/ember-cli-build.js
index d690a25..9d072b4 100644
--- a/ember-cli-build.js
+++ b/ember-cli-build.js
@@ -1,6 +1,7 @@
 'use strict';

 const EmberApp = require('ember-cli/lib/broccoli/ember-app');
+const Funnel = require('broccoli-funnel');

 module.exports = function(defaults) {
   let app = new EmberApp(defaults, {
@@ -20,5 +21,7 @@ module.exports = function(defaults) {
   // please specify an object with the list of modules as keys
   // along with the exports of each module as its value.

-  return app.toTree();
+  return new Funnel(app.toTree(), {
+    exclude: ['file-to-exclude'],
+  });
 };

您应该显式地将 broccoli-funnel 添加到您的依赖项中,即使它可以作为间接依赖项使用:

// if using npm
npm install -D broccoli-funnel

// if using yarn
yarn add -D broccoli-funnel

Broccoli-funnel 不仅支持准确的文件名,还支持正则表达式、glob 字符串或函数来定义要排除的文件。详情请查看it's documentation