midway icon indicating copy to clipboard operation
midway copied to clipboard

ReferenceError: window is not defined

Open xmsz opened this issue 4 years ago • 5 comments

[Error Message] window is not defined.
ReferenceError: window is not defined
    at /Users/project/.faas_debug_tmp/build/web/index.js:34:41
    at Object.<anonymous> (/Users/project/.faas_debug_tmp/build/web/index.js:1028:10)
    at Module._compile (internal/modules/cjs/loader.js:1201:30)
    at Module._compile (/Users/project/node_modules/[email protected]@pirates/lib/index.js:99:24)
    at Module._extensions..js (internal/modules/cjs/loader.js:1221:10)
    at Object.newLoader [as .js] (/Users/project/node_modules/[email protected]@pirates/lib/index.js:104:7)
    at Module.load (internal/modules/cjs/loader.js:1050:32)
    at Function.Module._load (internal/modules/cjs/loader.js:938:14)
    at Module.require (internal/modules/cjs/loader.js:1090:19)
    at require (internal/modules/cjs/helpers.js:75:18)
    at MidwayContainer.loadDirectory (/Users/project/node_modules/_@[email protected]@@midwayjs/core/dist/context/midwayContainer.js:137:33)
    at MidwayContainer.load (/Users/project/node_modules/_@[email protected]@@midwayjs/core/dist/context/midwayContainer.js:92:18)
    at MidwayFaaSFramework.containerDirectoryLoad (/Users/project/node_modules/_@[email protected]@@midwayjs/core/dist/baseFramework.js:121:33)
    at MidwayFaaSFramework.initialize (/Users/project/node_modules/_@[email protected]@@midwayjs/core/dist/baseFramework.js:55:20)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
ReferenceError: window is not defined
    at /Users/project/.faas_debug_tmp/build/web/index.js:34:41
    at Object.<anonymous> (/Users/project/.faas_debug_tmp/build/web/index.js:1028:10)
    at Module._compile (internal/modules/cjs/loader.js:1201:30)
    at Module._compile (/Users/project/node_modules/[email protected]@pirates/lib/index.js:99:24)
    at Module._extensions..js (internal/modules/cjs/loader.js:1221:10)
    at Object.newLoader [as .js] (/Users/project/node_modules/[email protected]@pirates/lib/index.js:104:7)
    at Module.load (internal/modules/cjs/loader.js:1050:32)
    at Function.Module._load (internal/modules/cjs/loader.js:938:14)
    at Module.require (internal/modules/cjs/loader.js:1090:19)
    at require (internal/modules/cjs/helpers.js:75:18)
    at MidwayContainer.loadDirectory (/Users/project/node_modules/_@[email protected]@@midwayjs/core/dist/context/midwayContainer.js:137:33)
    at MidwayContainer.load (/Users/project/node_modules/_@[email protected]@@midwayjs/core/dist/context/midwayContainer.js:92:18)
    at MidwayFaaSFramework.containerDirectoryLoad (/Users/project/node_modules/_@[email protected]@@midwayjs/core/dist/baseFramework.js:121:33)
    at MidwayFaaSFramework.initialize (/Users/project/node_modules/_@[email protected]@@midwayjs/core/dist/baseFramework.js:55:20)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)

直接炸了,但是依赖太多根本找不出来是哪个影响的 也退不回去

xmsz avatar Jan 28 '21 14:01 xmsz

看看 src/apis 下面的代码哪里用了 window,或者是否 src/apis 下的代码引用了前端的代码

Lxxyx avatar Jan 28 '21 14:01 Lxxyx

目前 hooks 得配合着编译器一起用的,编译器的配置在 f.yml 里,单独拷过去是用不了的

Lxxyx avatar Jan 28 '21 14:01 Lxxyx

再稍等我一下 我一个一个依赖升级试试看

xmsz avatar Jan 28 '21 15:01 xmsz

先记录一下

我直接拷贝项目,运行报Please use in compiled mode,发现和原项目不同的是依赖版本不同

一个一个尝试更新依赖,发现只要重新安装了@midwayjs/faas-cli,就会报window is not defined

@midwayjs/faas-cli本来本身1.2.35,只要升级这个包就会出错,但是后来发现并不是这个包问题,而是更新这个包的时候,同时更新了其他的包

现在就在看到底是哪个包影响

xmsz avatar Jan 28 '21 15:01 xmsz

@Lxxyx 这是https://github.com/xmsz/demo-20210128 我的项目

  • 去掉src/apis/lambda/home/index.ts的const ctx = useContext();就能正常跑
  • 升级到@midwayjs/[email protected]以上就能复现window is not defined

xmsz avatar Jan 28 '21 16:01 xmsz