标签: vue-ssr

对于使用 Vue cli3 库的 Vuejs cli3 SPA 应用程序,SSR 构建表示“文档未定义”

我有一个使用 Vue CLI v3 创建的相当复杂的 SPA Vue.js 应用程序。我想转换这个应用程序以从 SSR 中受益(尽管我最终可能只使用预渲染......)

我的应用程序也在使用通过 CLI v3 创建的自定义 Vuejs 库。这些库嵌入了 CSS,我想继续这样做。

我可能已经阅读了世界上关于 Vue cli、vue-loader、vue-style-loader、vue.config.js、提取 css 等的所有内容,但我一直失败。

这是我加载给定路线时正在运行的应用程序的错误消息:

ReferenceError: document is not defined
    at addStyle (/Users/onekiloparsec/code/my-app/node_modules/vue-custom-lib/dist/vue-custom-lib.common.js:699:22)
    at addStylesToDom (/Users/onekiloparsec/code/my-app/node_modules/vue-custom-lib/dist/vue-custom-lib.common.js:683:20)
    at addStylesClient (/Users/onekiloparsec/code/my-app/node_modules/vue-custom-lib/dist/vue-custom-lib.common.js:637:3)
    at Object.3351 (/Users/onekiloparsec/code/my-app/node_modules/vue-custom-lib/dist/vue-custom-lib.common.js:500:14)
    at __webpack_require__ (/Users/onekiloparsec/code/my-app/node_modules/vue-custom-lib/dist/vue-custom-lib.common.js:21:30)
    at Object.d12e (/Users/onekiloparsec/code/my-app/node_modules/vue-custom-lib/dist/vue-custom-lib.common.js:3590:380)
    at __webpack_require__ (/Users/onekiloparsec/code/my-app/node_modules/vue-custom-lib/dist/vue-custom-lib.common.js:21:30)
    at Module.fae3 (/Users/onekiloparsec/code/my-app/node_modules/vue-custom-lib/dist/vue-custom-lib.common.js:3859:51)
    at __webpack_require__ (/Users/onekiloparsec/code/my-app/node_modules/vue-custom-lib/dist/vue-custom-lib.common.js:21:30)
    at /Users/onekiloparsec/code/my-app/node_modules/vue-custom-lib/dist/vue-custom-lib.common.js:85:18
    at Object. (/Users/onekiloparsec/code/my-app/node_modules/vue-custom-lib/dist/vue-custom-lib.common.js:88:10)
    at Module._compile (internal/modules/cjs/loader.js:701:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
    at Module.load (internal/modules/cjs/loader.js:600:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
    at Function.Module._load (internal/modules/cjs/loader.js:531:3)
Run Code Online (Sandbox Code Playgroud)

单击错误的第一行时,我从commonjs我的 lib 文件中获得以下代码: …

vue.js server-side-rendering vuejs2 vue-ssr vue-cli-3

6
推荐指数
1
解决办法
1319
查看次数

如何处理 Nuxt SSR 错误并显示自定义 404 || 500页?

当 Nuxt 的 SSR 遇到错误时,你如何处理错误?

目前我正在使用error()处理程序,但它在生产中不起作用?这是我的 Nuxt 应用程序的示例。

异步数据

 async asyncData({ store, route, error }) {
    return store.dispatch( NAMESPACES.USERS + ACTIONS.GET_DETAIL, userId ).then(response => ({
      data: response,
    })).catch((e) => {
      error(e)
    })
  } 
Run Code Online (Sandbox Code Playgroud)

错误.vue

  <vis-container>
    <vis-row class="error">
      <vis-col md="8" class="error__component">
        <component :is="errorPage" :error="error.statusCode" />
      </vis-col>

      <vis-col md="8" class="error__contact">
        <p class="error__contact__title">{{ $t('error_page.question') }}</p>
      </vis-col>
    </vis-row>
  </vis-container>
</template>

<script>
export default {
  props: ['error'],
components: {
    NotFound: () => import('@/components/error/NotFound'),
    InternalServerError: () => import('@/components/error/InternalServerError'),
  },
    computed: {
    errorPage() {
      if …
Run Code Online (Sandbox Code Playgroud)

server-side-rendering nuxt.js vue-ssr nuxtserverinit

5
推荐指数
1
解决办法
2287
查看次数

Nuxt.js 与 vuex-persist - 页面刷新时 asyncData 中的持久状态不可用

刷新第一页时,asyncData 函数无法获取持久状态。当我关注另一个 NuxtLink 并返回到此页面时,虽然状态在此期间没有发生变化,但数据就在那里。这意味着持久状态在第一次加载/刷新时在服务器端不可用。LocalStorage 是我选择保存相关状态项的地方。

使用 asyncData 的页面组件:

  asyncData({ app, params, store }) {
  //its not available upon first refresh, but is after following a random nuxtlink and going back
    const cartProducts = store.getters.getCartProducts 
},
Run Code Online (Sandbox Code Playgroud)

store/index.js 很简单。不幸的是,在第一页刷新时,asyncData 中的状态完全为空。

  getCartProducts(state) {
    return state.cart.products
  },
Run Code Online (Sandbox Code Playgroud)

按照 Github 自述文件中的建议,使用“客户端”模式正确导入 vuex-persist.js

import VuexPersistence from 'vuex-persist'
/** https://github.com/championswimmer/vuex-persist#tips-for-nuxt */

export default ({ store }) => {
  window.onNuxtReady(() => {
    new VuexPersistence({
      key: 'cartStorage'
      /* your options */
    }).plugin(store)
  })
}
Run Code Online (Sandbox Code Playgroud)

如何确保在调用 asyncData之前保留本地存储中的相关存储术语?

vuex nuxt.js vue-ssr

4
推荐指数
1
解决办法
4713
查看次数

如何删除nuxt项目中的window._nuxt_,它对我来说太大了

当我使用nuxt开发我的项目时,我发现了一些问题。

window.__NUXT__=(function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,_,$,aa, ..... code was too larger

Run Code Online (Sandbox Code Playgroud)

我可以删除它或使用js文件替换它吗?

vue.js nuxt.js vue-ssr

3
推荐指数
1
解决办法
2737
查看次数