Хочу в package.json параметр "version" изменять из клиентской части динамически.
1. Получаю от сервера версию 1.0.1 (server_version)
2. Сравниваю то, что в process.env.version === server_version
3. Если это так, то изменяю process.env.version = server_version.
Однако из клиентской части я это просто так не могу сделать.
Всё это нужно, чтобы просить обновление у пользователя, то есть, когда выходит новая версия, то спрашивать, а затем делать $router.go()
Ок. А зачем вам менять именно env, почему нельзя просто внутри приложения завести переменную и менять её?
Имхо, если надо именно в файле сохранять значение, то это какой-то отдельный сервис должен делать, который будет получать переменную, физически записывать значение в файл и перезапускать приложение, которое с этим значением работает.
Алексей Уколов,
Соглашусь. Думаю localStorage будет отличным сервисом.
Каждые 5-10 секунд проверяю на сервере версию, сравниваю её с localStorage, если они отличаются, спрашиваю пользователя о необходимости обновления localStorage и перезагрузки страницы (буду перезагружать с помощью this.$forceUpdate() или $this.router.go()).
Ну и на mounted() { Нужно также навесить получение версии и сразу сохранения без спроса пользователя }
Rooly, каждые 5-10 секунд? Спрашивать пользователя?
Извините, но вы делаете аналог десктоп приложения?
Если да, то вы неправы в корне подхода (система обновлений не работает так, как минимум).
Если нет, то данные действия - излишняя и неоправданная нагрузка логики
UPD: Если вам нужна система обновлений, то это делается 1 раз за сеанс (в начале использования либо спустя какое-то время), либо 1 раз за день/неделю/месяц
Александр Шипин, Остановился на том, что буду версию задавать в заголовке из сервера. У меня приложение посылает echo запрос на сервер время от времени и с ним приходит версия приложения, версию я проверяю на клиенте и записываю в localStorage Проверяю я текущую версию, хранимую в localStorage и версию, которая пришла с сервера, если они разные, то обновляю.