首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError的Gridsome构建失败

TypeError的Gridsome构建失败
EN

Stack Overflow用户
提问于 2019-12-03 04:30:25
回答 1查看 937关注 0票数 0

我在初学者项目模板上运行Gridsome构建时遇到了一些问题。该网站在localhost上运行,没有问题。我尝试过npm install gridsome@latest更新或安装任何丢失的软件包。

Gridsome给出了以下错误:

代码语言:javascript
复制
    Could not generate HTML for "/work/":
    TypeError: Cannot read property 'console' of null
      at Object. (C:\Users\Micah\Desktop\my-gridsome-site\node_modules\vue-meta\dist\vue-meta.common.js:103:23)
      at Module._compile (internal/modules/cjs/loader.js:778:30)
      at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
      at Module.load (internal/modules/cjs/loader.js:653:32)
      at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
      at Function.Module._load (internal/modules/cjs/loader.js:585:3)
      at Module.require (internal/modules/cjs/loader.js:692:17)
      at require (internal/modules/cjs/helpers.js:25:18)
      at C:\Users\Micah\Desktop\my-gridsome-site\node_modules\vue-server-renderer\build.prod.js:1:77671
      at Object. (webpack:/external "vue-meta":1:0)

vue-meta.common.js:103:23的代码读取var console = _global.console || {};,如下所示:

代码语言:javascript
复制
var hasGlobalWindow = hasGlobalWindowFn();

var _global = hasGlobalWindow ? window : global;

var console = _global.console || {};
function warn(str) {
  /* istanbul ignore next */
  if (!console || !console.warn) {
    return;
  }

  console.warn(str);
}
var showWarningNotSupported = function showWarningNotSupported() {
  return warn('This vue app/component has no vue-meta configuration');
};

复制的步骤

从命令行运行网格化构建。

环境

代码语言:javascript
复制
System:
OS: Windows 10
CPU: (4) x64 Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz
Binaries:
Node: 10.16.3 - C:\Program Files\nodejs\node.EXE
npm: 6.9.0 - C:\Program Files\nodejs\npm.CMD
Browsers:
Edge: 44.18362.449.0
npmPackages:
gridsome: ^0.7.11 => 0.7.11
gridsome-plugin-tailwindcss: ^2.2.26 => 2.2.26
EN

回答 1

Stack Overflow用户

发布于 2020-02-12 22:36:40

我认为问题只是在构建中,因为组件的缺乏SSR (服务器端呈现)。在构建模式中没有窗口。尝试在vue的<template>标记中使用<ClientOnly>标记包装组件,如下所示:

代码语言:javascript
复制
<template>
  <ClientOnly>
    <my-component />
  </ClientOnly>
</template>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59150207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档