Comments (8)
Hi, this is a bug from vue-router that does not handle the export default
with lazy importing.
You have to update
component: () => require("@/pages/index.vue")
to
component: () => import("@/pages/index.vue").then((m) => m.default || m)
And this for each component you will import.
from router-module.
@Atinux I didn't see this issue anywhere in vue-router repo, and actually it works well with a vue-cli project: https://codesandbox.io/s/vue-router-example-forked-ofico?file=/src/router/index.js
Could it be nuxt related?
Thanks.
from router-module.
Hi guys @posva @Atinux, I still have the issue on a brand new project.
I've tried with this route, which is the standard SFC nuxt index page:
const isESModule = obj => obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')
import('./pages/index.vue').then((comp) => console.log(isESModule(comp), comp))
The console.log
gives true Object { default: VueComponent(options), … }
, so it seems to be quite standard. The component is a an ESModule, so I don't understand why it doesn't get the default like it should.
I'm trying to debug it and investigate to fix it, but if you have any clues, I'm taking them with pleasure.
Thanks
EDIT 1:
We do not enter in the condition here, as the def is a VueComponent function, and has a cid, so the
if (isESModule(resolvedDef)) {
resolvedDef = resolvedDef.default;
}
isn't executed.
from router-module.
Same error on my side. Works fine on another Nuxt project
from router-module.
Any news on this ? This error has been reported 2 years ago.
If this is the only (and intended) solution. This should be documented, no ?
from router-module.
I thought vue-router fixed it in one of the last release, cc @posva
from router-module.
The check for ES Modules has been the same for around 3 years I think, and the relevant code is located at https://github.com/vuejs/vue-router-next/blob/master/src/utils/index.ts#L7 or https://github.com/vuejs/vue-router/blob/f597959b14887cf0535aa895b6325a2f9348c5cf/src/util/resolve-components.js#L95 (v4 and v3)
Usually, these objects are generated and if they are not generated properly you will have to add the workaround mentioned #82 (comment)
from router-module.
Usually, these objects are generated
So, may it be something about an issue with nuxt webpack build @Atinux? Because here, there is nothing more than just importing classic vue component. (Could we so reopen the issue?)
@posva For my knowledge, why not use a standard interropDefault in vue-router instead of this module thing?
from router-module.
Related Issues (20)
- base route is appended to url on page referesh HOT 1
- next() function is not working well HOT 1
- children in route.js don't work HOT 2
- Custom router in .nuxt folder HOT 2
- does it support nuxt3 with vue3 HOT 3
- Vue router 4 support HOT 6
- Release HOT 1
- Cannot start nuxt: Cannot find module 'nuxt/lib/app/router' in nuxt3 HOT 5
- Readme "If you are using Nuxt < 2.16.0, the parameter store is not available" HOT 2
- the css load order changes after using @nuxtjs/router
- Cannot extend routes from a module
- Code splitting not working with router.js HOT 3
- `Cannot read properties of undefined (reading 'options')` on add @nuxtjs/router to Nuxt 3 project HOT 1
- Docs: Missing correct docs about the `store` parameter.
- Can I access to the routes within another module?
- Anchor link dont work on yarn generate
- Is this module compatible with SSG build?
- Nuxt 3 Support HOT 1
- Nuxt content not generate or parse to custom router
- Hydratation error with SSG HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from router-module.