NextJS Webworker`未定义窗口`

Posted

技术标签:

【中文标题】NextJS Webworker`未定义窗口`【英文标题】:NextJS Webworker `window is not defined` 【发布时间】:2019-10-05 19:11:36 【问题描述】:

使用 NextJS 和 next-web-worker 包时出现窗口未定义错误。

require('dotenv').config();
const withPlugins = require('next-compose-plugins');
const withCSS = require('@zeit/next-css');
const withWorkers = require('@zeit/next-workers');
const Dotenv = require('dotenv-webpack');

const webpackConfig = (config) => 
  config.plugins = config.plugins || [];
  config.target = 'universal';
  config.output = 
    ...config.output,
    filename: 'bundle.js',
    path: path.join(__dirname, 'dist'),
    globalObject: '(this || global)',
    publicPath: 'http://localhost:3000'
  ;

  config.plugins = [
    ...config.plugins,

    // Read the .env file
    new Dotenv(
      path: path.join(__dirname, '.env'),
      systemvars: true
    )
  ];

  return config;
;

module.exports = withPlugins([[withCSS], [withWorkers]], webpackConfig);

建议的解决方法似乎是将 globalObject 设置为 this 或 global 但这不起作用。是否有其他解决方法?

【问题讨论】:

【参考方案1】:

我刚刚遇到同样的错误,通过关注the advice here 解决了它:

yarn add @zeit/next-workers@canary

【讨论】:

以上是关于NextJS Webworker`未定义窗口`的主要内容,如果未能解决你的问题,请参考以下文章

NextJS:未捕获的类型错误:无法读取未定义的属性(读取“属性”)

React 和 Next.js 中的窗口未定义错误 [重复]

NextJS:“TypeError:无法读取未定义的属性‘toLowerCase’”

Nextjs:getStaticProps 中未定义的上下文

无法从 nextjs 中的 api 获取图像-TypeError:无法读取未定义的属性(读取“地图”)NEXTJS

Nextjs - multer - TypeError:无法读取未定义的属性“传输编码”