Как скрыть раздел в .hbs и .js при создании производственной сборки ember
Наше приложение Ember разработано в версии 2.8, и мы следуем структуре POD.
Мы создаем две разные сборки, как показано ниже.
1) Для нашего сервера разработки: без изменений в коде, просто создайте
2) Для нашего тестового сервера: удалите раздел в HBS, а также удалите маршрут из router.js, затем выполните сборку
И мы берем сборку с помощью "npm run-scripts build", которая настроена в нашем package.json, как показано ниже.
"scripts": {
"build": "ember build",
"start": "ember server",
"test" : "ember test"
},
Я хотел бы знать в ember 2.8v, могу ли я записать условие для удаления раздела на основе build.
Например, если я дам npm run-scripts buildDev, он будет выполнять обычную сборку
и если я дам npm run-scripts buildTest, он выполнит удаление разделов и даст сборку
но в package.json оба будут настроены как
"scripts": {
"build" : "ember build",
"buildDev" : "ember build --environment=production",
"buildTest": "ember build --environment=production",
"start": "ember server",
"test" : "ember test"
},
1 ответ
Вы хотите только отключить раздел или вам нужно удалить его из сборки?
Это довольно просто, если вы хотите только что-то отключить:
Сначала вы можете использовать переменные среды в своем 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
. тогда минификатор удалит код.