我正在尝试在流星应用程序中运行一个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
如何让我的应用看到它?注意我没有直接在我的代码中导入它,从上面的堆栈跟踪可以看出。也许这是一个流星虫。
答案 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");
}
因此,如果您遇到此问题,请仔细检查您是否在无意中在客户端上运行代码。