Как скрыть раздел в .hbs и. js при создании производственной сборки ember - PullRequest
0 голосов
/ 17 июня 2020

Наше приложение Ember разработано в версии 2.8, и мы следуем структуре POD.

Мы генерируем две разные сборки, как показано ниже

1) Для нашего сервера разработки: без изменений в коде, просто do build

2) Для нашего тестового сервера: удалите раздел в HBS, а также удалите маршрут от маршрутизатора. js затем выполните сборку

И мы берем сборку с использованием «npm run-scripts build", который настроен в нашем пакете. json как показано ниже

"scripts": {
    "build": "ember build",
    "start": "ember server",
    "test" : "ember test"
  },

Я хотел бы знать в ember 2.8v, могу ли я записать условие для удаления раздела на основе сборки.

Например, если я дам npm run-scripts buildDev , он будет выполнять обычную сборку

, и если я дам npm run -scripts buildTest он выполнит удаление разделов и даст сборку

, но в пакете. json оба будут настроены как

"scripts": {
    "build"    : "ember build",
    "buildDev" : "ember build --environment=production",
    "buildTest": "ember build --environment=production",
    "start": "ember server",
    "test" : "ember test"
  },

1 Ответ

0 голосов
/ 19 июня 2020

Вы хотите только отключить раздел или вам нужно удалить его из сборки?

Это довольно просто, если вы хотите только что-то отключить :

Сначала вы можете использовать переменные среды в своем config/environment.js. Итак, что-то вроде этого:

if(process.env.DEV_BUILD) {
  ENV.disableSomething = true;
}

В вашем package.json вы можете сделать это:

"build": "cross-env DEV_BUILD=1 ember build",

Это использует cross-env для установки переменной env в windows и * nix системы.

Затем вы можете импортировать конфигурацию и использовать ее:

import ENV from 'hss/config/environment';

...

if(!ENV.disableSomething) {
  this.route('foo');
}

...

Однако, если вы действительно хотите удалить какой-то код, вы можете написать свой собственный аддон для этого, чтобы заменить некоторую переменную на true или false. тогда минификатор удалит код.

...