Javascript 在React应用程序中找不到包含npm包的模块

Javascript 在React应用程序中找不到包含npm包的模块,javascript,node.js,reactjs,protocol-buffers,Javascript,Node.js,Reactjs,Protocol Buffers,我有一个React应用程序,它从API获取一些数据。数据是传输数据,并使用协议缓冲区序列化,因此我使用gtfs-realtime-bindings.js包对其进行反序列化。它还在引擎盖下使用ProtoBuf.js和ByteBuffer.js。但是,当我运行dev服务器时,浏览器中出现以下错误: ./node_modules/protobufjs/ProtoBuf.js Module not found: `/Users/Ben/React/subway- checker/node_modules

我有一个React应用程序,它从API获取一些数据。数据是传输数据,并使用协议缓冲区序列化,因此我使用gtfs-realtime-bindings.js包对其进行反序列化。它还在引擎盖下使用ProtoBuf.js和ByteBuffer.js。但是,当我运行dev服务器时,浏览器中出现以下错误:

./node_modules/protobufjs/ProtoBuf.js
Module not found: `/Users/Ben/React/subway-
checker/node_modules/ByteBuffer/ByteBuffer.js` does not match the 
corresponding path on disk `bytebuffer`.
我真的不知道如何开始调试这个。这可能是一个网页问题?如果有助于诊断,我正在使用CreateReact应用程序

对于上下文,以下是导致错误的文件中的其余代码:

从“gtfs实时绑定”导入GtfsRealtimeBindings; 从“请求”导入请求

function getFeedData (sub) {
    var feedId;
    switch (sub) {
        case '1' || '2' || '3' || '4' || '5' || '6' || 'S':
                feedId = 1;
                break;
            case 'A' || 'C' || 'E':
                feedId = 26;
                break;
            case 'N' || 'Q' || 'R' || 'W':
                feedId = 16;
                break;
            case 'B' || 'D' || 'F' || 'M':
                feedId = 21;
                break;
            case 'L':
                feedId = 2;
                break;
            case 'G':
                feedId = 31;
                break;
    }
    var requestSettings = {
      method: 'GET',
      uri: 'http://datamine.mta.info/mta_esi.php?key=YOUR_KEY_HERE&feed_id=2',
      encoding: null
    };
    request(requestSettings, function (error, response, body) {
      if (!error && response.statusCode == 200) {
          var feed = GtfsRealtimeBindings.FeedMessage.decode(body);
          return { feed: feed };
        }
    });
}

function reverseStop (sub, stop) {
    var stopIdN
    var stopIdS
    var stopData = require('./stops');
    var invalidEntries = 0;
    function filterByName (item) {
        if (item.stop_name == stop && item.stop_id.charAt(0) == sub) {
            return true;
        }
        invalidEntries++;
        return false;
    }
    var stopObjs = stopData.filter(filterByName);
    for (var i = 0; i < stopObjs.length; i++) {
        if (stopObjs[i].stop_id.charAt(stopObjs[i].stop_id.length - 1) == 'N') {
            stopIdN = stopObjs[i].stop_id;
        } else if (stopObjs[i].stop_id.charAt(stopObjs[i].stop_id.length - 1) == 'S') {
            stopIdS = stopObjs[i].stop_id;
        }
    }
    return {
        stopIdN: stopIdN,
        stopIdS: stopIdS
    };
}

var isDelayN = (function (sub, stop) {
    var arrivals = [];
    var delays = [];
    reverseStop(sub, stop);
    getFeedData(sub);
    (function () {
            var invalidEntries = 0;
            var feedObjs = getFeedData.feed.filter(function (feedObj) {
                if (feedObj.entity.trip_update.stop_time_update.stop_id == reverseStop.stopIdN) {
                    return feedObj.entity.trip_update.stop_time_update;
                }
            });
            for (var i = 0; i < feedObjs.length; i++) {
                arrivals.push(feedObjs.arrival.time.low);
                delays.push(feedObjs.arrival.delay);
            }
        })();
    var nextArrival = Math.min(...arrivals);
    var delayIndex = arrivals.findIndexOf(nextArrival);
    var delay = delays.delayIndex;
    if (delay === null || Math.ceil(delay / 60) <= 5) {
        var noDelay = Math.ceil((nextArrival - getFeedData.feed.header.timestamp.low) / 60);
        return { noDelay: noDelay };
    } else {
        var yesDelay = Math.ceil(delay / 60);
        return { yesDelay: yesDelay };
    }
})();

var isDelayS = (function (sub, stop) {
    var arrivals = [];
    var delays = [];
    reverseStop(stop);
    getFeedData(sub)
        .then(function (feed) {
            var invalidEntries = 0;
            var feedObjs = feed.filter(function (feedObj) {
                if (feedObj.entity.trip_update.stop_time_update.stop_id == reverseStop.stopIdS) {
                    return feedObj.entity.trip_update.stop_time_update;
                }
            });
            for (var i = 0; i < feedObjs; i++) {
                arrivals.push(feedObjs.arrival.time.low);
                delays.push(feedObjs.arrival.delay);
            }
        });
    var nextArrival = Math.min(...arrivals);
    var delayInex = arrivals.findIndexOf(nextArrival);
    var delay = delays.delayIndex;
    if (delay === null || Math.ceil(delay / 60) <= 5) {
        var noDelay = Math.ceil((nextArrival - getFeedData.feed.header.timestamp.low) / 60);
        return { noDelay: noDelay };
    } else {
        var yesDelay = Math.ceil(delay / 60);
        return { yesDelay: yesDelay };
    }
})();

export { isDelayN, isDelayS };
函数getFeedData(sub){
var feedId;
开关(sub){
案例“1”| |“2”| |“3”| |“4”| |“5”| |“6”| |“S”:
feedId=1;
打破
案例“A”| |“C”| |“E”:
feedId=26;
打破
格“N”| |“Q”| |“R”| |“W”:
feedId=16;
打破
格“B”| | D”| | F”| | M”:
feedId=21;
打破
案例“L”:
feedId=2;
打破
案例“G”:
feedId=31;
打破
}
var请求设置={
方法:“GET”,
uri:'http://datamine.mta.info/mta_esi.php?key=YOUR_KEY_HERE&feed_id=2',
编码:空
};
请求(请求设置、功能(错误、响应、正文){
如果(!error&&response.statusCode==200){
var feed=GtfsRealtimeBindings.FeedMessage.decode(正文);
返回{feed:feed};
}
});
}
功能反转停止(子,停止){
var stopIdN
变幅stopIdS
var stopData=require(“./stops”);
var无效标识=0;
函数filterByName(项){
if(item.stop\u name==stop&&item.stop\u id.charAt(0)==sub){
返回true;
}
无效标识++;
返回false;
}
var stopObjs=stopData.filter(filterByName);
对于(var i=0;iif(delay==null | | Math.ceil(delay/60)奇怪。判断是错误消息,它看起来像一个案例问题。您是否检查了
node_modules
中的
ByteBuffer
文件夹,并验证它是否是驼峰式的?或者它是否存在?@RickJolly,所以我只是检查了一下。node_modules
中的文件夹不是驼峰式的。我将其更改为驼峰式的,然后重新启动y服务器,但我仍然收到相同的错误。奇怪。从错误消息来看,它看起来像是一个案例问题。您是否检查了
node_modules
中的
ByteBuffer
文件夹,并验证它是否是驼峰式的?或者它是否存在?@RickJolly,所以我刚刚检查了它。
node_modules
中的文件夹不是驼峰式的。我把它改成驼峰式,重新启动了我的服务器,但我仍然收到同样的错误。