我正在使用meteor构建一个协作式文本编辑器web应用程序。同样,我添加了一个名为"mizzao:sharejs-codemirror“的包,之后我的应用程序在启动时崩溃,并显示以下错误
ReferenceError: Cannot access 'ShareJS' before initialization
at module (packages/mizzao:sharejs/sharejs-server.js:8:24)
at fileEvaluate (packages\modules-runtime.js:336:7)
at Module.require (packages\modules-runtime.js:238:14)
at require (packages\modules-runtime.js:258:21)
at D:\Workspace\web\course4\week (1)\textcircle\.meteor\local\build\programs\server\packages\mizzao_sharejs.js:130:15
at D:\Workspace\web\course4\week (1)\textcircle\.meteor\local\build\programs\server\packages\mizzao_sharejs.js:135:3
at D:\Workspace\web\course4\week (1)\textcircle\.meteor\local\build\programs\server\boot.js:401:38
at Array.forEach (<anonymous>)
at D:\Workspace\web\course4\week (1)\textcircle\.meteor\local\build\programs\server\boot.js:226:21
at D:\Workspace\web\course4\week (1)\textcircle\.meteor\local\build\programs\server\boot.js:464:7
at Function.run (D:\Workspace\web\course4\week (1)\textcircle\.meteor\local\build\programs\server\profile.js:280:14)
at D:\Workspace\web\course4\week (1)\textcircle\.meteor\local\build\programs\server\boot.js:463:13有没有人能告诉我我可能会错在哪里谢谢。
发布于 2020-06-14 10:19:01
看起来这句话来自this line
export const ShareJS = ShareJS || {};正如错误所述,它试图将变量ShareJS赋给ShareJS的内容,直到表达式结束后才定义该变量。
这在较旧的Meteor版本中是有效的,因为为了支持较旧的浏览器,const声明被转译为var (使用一些帮助程序来防止重新赋值)。最近,Meteor已经开始为现代浏览器生产现代捆绑包,这使得像const这样的代码原封不动。
不幸的是,这段代码从一开始就是不正确的,但直到现在才显示为错误。
最简单的解决方法是自己编辑这条线。你可以通过从github下载源代码到你的应用程序的packages文件夹来创建一个本地分支。然后将const更改为var。
您将需要编辑sharejs-base包。
或者,您可以使用来自npm的最新版本的ShareJS,并自己实现服务器和客户端部分。
https://stackoverflow.com/questions/62355979
复制相似问题