ReferenceError:初始化之前无法访问“ ShareJS”

时间:2020-06-13 05:41:08

标签: meteor sharejs

我正在使用流星构建协作文本编辑器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

谁能告诉我我可能要去哪里了 谢谢。

1 个答案:

答案 0 :(得分:1)

类似的东西来自this line

export const ShareJS = ShareJS || {};

正如错误所言,它试图将变量ShareJS分配给ShareJS的内容,直到完成表达式后才对其进行定义。

这在较旧的Meteor版本中是可行的,因为要支持较旧的浏览器,const的声明将被转换为var(使用一些帮助程序来防止重新分配)。 最近,Meteor已开始为现代浏览器生产现代捆绑包,而这些捆绑包不会更改const之类的代码。

不幸的是,此代码从一开始就不正确,但直到现在都没有显示为越野车。

最简单的方法是自己编辑该行。您可以通过将源代码从github下载到应用程序的packages文件夹中来进行本地派生。然后将const更改为var

您将需要编辑sharejs-base软件包。

或者,您可以使用npm中的ShareJS的最新版本,并自己实现服务器和客户端部分。