Я использую инструмент Vue-CLI в своем основном компоненте App.vue:
// template code omitted for convenience
@Component
export default class App extends Vue {
private mounted(): void {
// checking app version
const storage = window.localStorage
this.$http.getVersion().then((resp: any) => {
const version = resp.data.id
if (storage.getItem('app_version') !== null && storage.getItem('app_version') != version) {
window.location.reload(true)
storage.setItem('app_version', version)
}
})
}
}
Логика, стоящая за этим кодом, заключается в обновлении браузера на стороне клиента при повторном развертываниимое веб-приложение к серверу. Без этого пользователю необходимо вручную обновить браузер, чтобы увидеть изменения, это неудобно для пользователей.
this.$http
- это экземпляр axios;
resp.data.id
- возвращает версиюкак число;
Проблема здесь в том, что когда я вручную изменяю версию в localStorage
(в браузере), затем обновляю браузер, мой веб-сервер devpack завершает работу с ошибкой:
"serve: vue-cli-service serve
npm ERR! Статус выхода 1"
Также проверен полный журнал отладки:
11 silly lifecycle project@0.1.0~serve: Returned: code: 1 signal: null
12 info lifecycle project@0.1.0~serve: Failed to exec serve script
13 verbose stack Error: branchio@0.1.0 serve: `vue-cli-service serve`
13 verbose stack Exit status 1
13 verbose stack at EventEmitter.<anonymous> (/Users/alexanderkim/.nvm/versions/node/v12.10.0/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:326:16)
13 verbose stack at EventEmitter.emit (events.js:209:13)
13 verbose stack at ChildProcess.<anonymous> (/Users/alexanderkim/.nvm/versions/node/v12.10.0/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack at ChildProcess.emit (events.js:209:13)
13 verbose stack at maybeClose (internal/child_process.js:1021:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
20 error code ELIFECYCLE
21 error errno 1
Что это может быть?