Meteor app找不到'xhr-sync-worker.js'?

时间:2017-06-04 13:42:33

标签: javascript node.js meteor deck.gl

我正在尝试在流星应用程序中运行一个deck.gl示例。但我面临这个错误。

modules-runtime.js?hash=8587d18…:231 Uncaught Error: Cannot find module './xhr-sync-worker.js'
    at makeMissingError (modules-runtime.js?hash=8587d18…:231)
    at Function.require.resolve (modules-runtime.js?hash=8587d18…:263)
    at xmlhttprequest.js (xml.js:30)
    at fileEvaluate (modules-runtime.js?hash=8587d18…:343)
    at require (modules-runtime.js?hash=8587d18…:238)
    at Window.js (xml.js:30)
    at fileEvaluate (modules-runtime.js?hash=8587d18…:343)
    at require (modules-runtime.js?hash=8587d18…:238)
    at api.js (xml.js:30)
    at fileEvaluate (modules-runtime.js?hash=8587d18…:343)

然而,所述js模块存在于meteor app node_modules文件夹中。

/caseview/node_modules/jsdom/lib/jsdom/living/xhr-sync-worker.js

如何让我的应用看到它?注意我没有直接在我的代码中导入它,从上面的堆栈跟踪可以看出。也许这是一个流星虫。

3 个答案:

答案 0 :(得分:1)

我过去在Meteor中遇到过这些问题,它说node_modules中找不到某个文件。我不知道发生这种情况的确切原因,但是看起来像是一些Meteor bug。

所以,我如何解决这个问题的方法是删除node_modules文件夹,然后再次执行meteor npm install。尝试这个,我认为这也适用于你的情况。如果它没有用,请告诉我。

答案 1 :(得分:0)

我也遇到了同样的问题,当我将 index.js 中的JSDOM重命名为 index.es6 时,它似乎消失了。我认为这与 ... require(); 功能有关。

答案 2 :(得分:-1)

我刚遇到这个问题并且能够解决我的问题,所以我想我会把它包含在这里供后人使用。

我通过NPM添加了JSDOM,并且无意中在我的客户端和服务器端代码上都需要jsdom。

通过将require包装在Meteor.isServer条件中,我解决了我的问题。

if (Meteor.isServer) {
  const jsdom = require("jsdom");
}

因此,如果您遇到此问题,请仔细检查您是否在无意中在客户端上运行代码。