Skip to content

optional chaining code makes error in SSR step #7722

@njh7799

Description

@njh7799

Versions

  • nuxt: v2.13.3
  • node: v14.5.0

Reproduction

codesandbox does not work well :(

// index.vue
<template>
  <div>
    <nuxt-link to="/about">about</nuxt-link>
    <div>{{ fullName }}</div>
  </div>
</template>

<script>
export default {
  computed: {
    fullName() {
      const a = { name: { firstName: 'Jack', lastName: 'Nam' } };
      const fullName = `${a.name?.firstName} ${a.name?.lastName}`;
      return fullName;
    },
  },
};
</script>
// about.vue
<template>
  <nuxt-link to="/">index</nuxt-link>
</template>

Steps to reproduce

  1. use create-next-app to create project
  2. create file named index.vue and about.vue in the pages directory
  3. write down code above
  4. run npm run dev in terminal
  5. access 127.0.0.1:3000

What is Expected?

[Fig. 1]



What is actually happening?

[Fig. 2]



When I access to 127.0.0.1:3000 by SSR (entering address directly), the error page(Fig. 2) came out. However when I access by CSR, the right page(Fig. 1) came out.

I think babel does not work properly in SSR.

+ when I ran npm run build command, similar error came out in terminal

ERROR in ./pages/index.vue?vue&type=script&lang=js& (./node_modules/babel-loader/lib??ref--2-0!./node_modules/@nuxt/components/dist/loader.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./pages/index.vue?vue&type=script&lang=js&) 26:33
Module parse failed: Unexpected token (26:33)
File was processed with these loaders:
 * ./node_modules/babel-loader/lib/index.js
 * ./node_modules/@nuxt/components/dist/loader.js
 * ./node_modules/vue-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.
|         }
|       };
>       const fullName = `${a.name?.firstName} ${a.name?.lastName}`;
|       return fullName;
|     }
 @ ./pages/index.vue?vue&type=script&lang=js& 1:0-227 1:243-246 1:248-472 1:248-472
 @ ./pages/index.vue
 @ ./.nuxt/router.js
 @ ./.nuxt/index.js
 @ ./.nuxt/server.js
 @ multi ./node_modules/@nuxt/components/lib/installComponents.js ./.nuxt/server.js

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions