Как вернуть значение из состояния if в Nuxt по умолчанию для экспорта. js - PullRequest
0 голосов
/ 06 мая 2020

Я переписываю проект, созданный в 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 просто работали для клиента, поскольку то, что я пробовал в плагинах, не сработало

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...