pikax / vue-composable

Vue composition-api composable components. i18n, validation, pagination, fetch, etc. +50 different composables
https://pikax.me/vue-composable/
MIT License
1.18k stars 64 forks source link

`usetitle` does not work #1009

Closed CaoMeiYouRen closed 2 years ago

CaoMeiYouRen commented 2 years ago
import { defineComponent } from '@vue/composition-api'
import { useTitle } from 'vue-composable'
export default defineComponent( {
    name: 'App',
    setup() {
        const title = useTitle()
        return {
             title
        }
    }
})
vue.runtime.esm.js:619 [Vue warn]: Error in data(): "ReferenceError: process is not defined"

found in

---> <Layout> at src/layout/Layout.vue
       <App> at src/App.vue
         <Root>
warn @ vue.runtime.esm.js:619
logError @ vue.runtime.esm.js:1893
globalHandleError @ vue.runtime.esm.js:1888

vue.runtime.esm.js:1897 ReferenceError: process is not defined
    at useTitle (vue-composable.esm-bundler.js:3572)
    at setup (Layout.vue:126)
    at mergedSetupFn (vue-composition-api.mjs:2117)
    at vue-composition-api.mjs:1929
    at activateCurrentInstance (vue-composition-api.mjs:1844)
    at initSetup (vue-composition-api.mjs:1927)
    at VueComponent.wrappedData (vue-composition-api.mjs:1910)
    at getData (vue.runtime.esm.js:4761)
    at initData (vue.runtime.esm.js:4718)
    at initState (vue.runtime.esm.js:4655)

I think it is caused by the following code

globalThis.import ? globalThis.import.meta.env.SSR : process.env.SSR

This is because import is a keyword, not an attribute of globalThis, so globalThis.import is always undefined

RanxinStart commented 2 years ago

You can try adding this environment variable in vite config

// vite.config.ts
export default defineConfig({
    define:{
        'process.env':{}
    },
})
CaoMeiYouRen commented 2 years ago

You can try adding this environment variable in vite config

// vite.config.ts
export default defineConfig({
    define:{
        'process.env':{}
    },
})

Thank you. The problem is solved