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