Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.04.2017, 20:46
Новичок на форуме
Отправить личное сообщение для cartilaga Посмотреть профиль Найти все сообщения от cartilaga
 
Регистрация: 18.04.2017
Сообщений: 2

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

Изоморфное приложение, сборка webpack. И клиентская и серверная часть обращаются к API. Урл, по которому происходит обращение, необходимо вынести в отдельный файл с конфигом, за пределами сборки. То есть, можно поменять урл не делая новый билд.

Если подробнее, то:
В продакшене сервер запускается из dist/srv.js, на клиент уходит dist/bunde.js.
В деве сервер запускается из src/server/server.js (работает на express), c клиентом общается webpackDevMiddleware/webpackHotMiddleware.
Конфиг нужен, например, в модуле src/api/thisIsApi.js

Вроде бы что то тривиальное, но несколько дней убил на это без результата.
Ответить с цитированием
  #2 (permalink)  
Старый 19.04.2017, 17:51
Новичок на форуме
Отправить личное сообщение для cartilaga Посмотреть профиль Найти все сообщения от cartilaga
 
Регистрация: 18.04.2017
Сообщений: 2

получилось как то так:
webpack.config.js (серверный билд)
...
externals: { "../config.js": "require('../config.js')"}
...

config.js
module.exports = {
apiUrl:'http://localhost:1234/api'
};

src/getConfig.js
let config;
if (typeof window !== 'undefined') {
config = window.__CONFIG__;
} else {
config = require('../config.js');
}
export default config;

src/server/server.js
import config from '../getConfig';
///Шаблон HTML
...
<script type="application/javascript">
window.__CONFIG__ = ${JSON.stringify(config)};
</script>
...

И потом где потребуется запрашивать через getConfig.js
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск