Как я могу поднять переменную над всем импортом в ES6?

В основном я использую babel для переноса моего приложения nodejs, поэтому я могу использовать es6, а также пакет node-config.

Пакет node-config по умолчанию ищет конфиги в папке /config. Это можно переназначить, выполнив что-то подобное ДО загрузки конфигурации. process.env["NODE_CONFIG_DIR"] = __dirname + "/configDir/";

Однако, поскольку я использую ES6, импорт поднимается и всегда загружается до запуска любого кода.

Мне было интересно, есть ли способ поднять приведенный выше код над всем импортом, чтобы он запускался до загрузки node-config? Или, возможно, есть другой способ решить эту проблему?

Любая помощь приветствуется!


person Community    schedule 25.12.2018    source источник
comment
Похоже, что NODE_CONFIG_DIR — это переменная среды, которую вы должны установить там, где вы запускаете node, а не внутри кода.   -  person Bergi    schedule 25.12.2018


Ответы (1)


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

Если вы хотите решить эту проблему в самом исходном коде, обратите внимание, что импорт выполняется по порядку, поэтому вы можете сделать

// main.js
import './configure-node-config';
import 'node-config';
…

// configure-node-config.js
process.env["NODE_CONFIG_DIR"] = __dirname + "/configDir/";

и убедитесь, что process.env был изменен до загрузки node-config.

person Bergi    schedule 25.12.2018