Конфиг приложения вне бандла в изоморфном приложении.
Подскажите, как решить такую задачу.
Изоморфное приложение, сборка webpack. И клиентская и серверная часть обращаются к API. Урл, по которому происходит обращение, необходимо вынести в отдельный файл с конфигом, за пределами сборки. То есть, можно поменять урл не делая новый билд. Если подробнее, то: В продакшене сервер запускается из dist/srv.js, на клиент уходит dist/bunde.js. В деве сервер запускается из src/server/server.js (работает на express), c клиентом общается webpackDevMiddleware/webpackHotMiddleware. Конфиг нужен, например, в модуле src/api/thisIsApi.js Вроде бы что то тривиальное, но несколько дней убил на это без результата. |
получилось как то так:
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 |
Часовой пояс GMT +3, время: 03:55. |