Я переписываю проект, созданный в vue. js, в nuxt. js, но у меня проблемы с функциями клиента и process.client в службе
У меня есть два файла: config. js и services / storage. js
В config. js У меня есть это:
export default {
//stuff,
storage: {
driver: 'localStorage',
temporaryData: {
globals: { timeout: time.minutes(120) },
//stuff
}
}
}
В services / storage. js Я называю это так:
import config from '@/config'
const storage = config.storage && window[config.storage.driver]
const temporaryData = config.storage && config.storage.temporaryData || {}
//some uses of storage like:
const storeAndCheck = (prop, value) => {
storage.setItem(prop, value)
return storeIfTemporary(prop)
}
// and the important part:
const repository = {
setCityId: id => storeAndCheck('cityId', id),
getCityId: () => {
const cityId = storage.getItem('cityId')
return cityId && parseInt(cityId)
},
//and some others like setCityId and getCityId
}
checkCleanStorage(temporaryData)
export default repository
Изначально я пробовал в nuxt.config. js:
plugins: [
{ src: '@/services/storage.js', mode: 'client' },
{ src: '@/config.js', mode: 'client' }
],
//also with ssr: false
Но по какой-то причине он продолжает говорить мне это окно не определено,
Затем попробуйте переписать мое хранилище. js код вроде этого:
import config from '@/config'
if (process.client) {
const storage = config.storage && window[config.storage.driver]
const temporaryData = config.storage && config.storage.temporaryData || {}
//some uses of storage:
const repository = {
setCityId: id => storeAndCheck('cityId', id),
//and some others like setCityId
}
}
checkCleanStorage(temporaryData)
export default repository
Но экспорт по умолчанию не использует мой константный репозиторий, что понятно, так как это вне if, если я помещу репозиторий по умолчанию для экспорта внутри if, это даст мне эту ошибку:
import 'и' export 'могут появляться только на верхнем уровне
Также пробовал с vars вместо const, но он возвращает все в null
Как я могу вернуть этот репозиторий const за пределами состояния if и экспортировать его по умолчанию?
Или даже лучше, как я могу сделать так, чтобы службы / хранилище. js и config. js просто работали для клиента, поскольку то, что я пробовал в плагинах, не сработало
Заранее спасибо