как исключить файлы изображений в папке publi c - PullRequest
0 голосов
/ 12 февраля 2020

В папке public у меня есть две папки hk и sg, у них разные файлы изображений.
Что мне нужно, если я собираю пакет hk, я копирую только изображения из hk folder.
Как исключить папку sg в ember-cli?

1 Ответ

1 голос
/ 13 февраля 2020

Ember использует Broccoli. js для своего конвейера сборки. Брокколи строится вокруг концепции деревьев. Пожалуйста, посмотрите в это документация для подробностей.

Вы можете исключить файлы из дерева, используя плагин broccoli-funnel . Он ожидает входной узел, который может быть либо именем каталога в виде строки, либо существующим деревом брокколи в качестве первого аргумента. Объект конфигурации должен быть предоставлен в качестве второго аргумента. Файлы или папки, которые следует исключить, могут быть указаны с помощью параметра exclude для этого объекта.

Дерево брокколи создается как часть процесса сборки в ember-cli-build.js. Функция, экспортированная из этого файла, должна возвращать дерево. По умолчанию он возвращает дерево, созданное app.toTree() напрямую. Но вы могли бы настроить это дерево с помощью брокколи-воронки раньше.

Эта разность показывает, как можно настроить значение по умолчанию ember-cli-build.js, предусмотренное проектом Ember CLI 3.16.0, чтобы исключить указанный файл c:

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 не только поддерживает точные имена файлов, но и регулярные выражения, Глобальные строки или функции для определения исключаемых файлов. Пожалуйста, посмотрите в это документация для деталей.

...