节点找不到已安装的包

Node cannot find installed package

我有一个简单的 nodejs client,它使用 grpcprotobufcpp grpc 服务器通信。 我的 package.json 包含 required 个软件包:

"dependencies": {
       "google-protobuf": "^3.9.1",
       "grpc-web": "^1.0.6",
       "webpack": "^4.39.2",
      "webpack-cli": "^3.3.7"
    }

I 运行 npm install 并且所有模块都安装在本地 node_modules.

我的客户端在与 node_modules 相同的路径中,但是当我启动它时,我收到一条错误消息,说它找不到 protobuf 模块。

来自 client.js:

var messages  = require('../../messages/proto/output/work_pb.js');
var services  = require('../../messages/proto/output/work_grpc_web_pb.js');
var grpc      = require('grpc');

运行 客户:

node client.js
Error: Cannot find module 'google-protobuf'
Require stack:
- /home/work/messages/proto/output/work_pb.js
- /home/work/frontend/web/client.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:713:15)
    at Function.Module._load (internal/modules/cjs/loader.js:618:27)
    at Module.require (internal/modules/cjs/loader.js:771:19)
    at require (internal/modules/cjs/helpers.js:68:18)
    at Object.<anonymous> (/home/radu/work/admass/messages/proto/output/work_pb.js:11:12)
    at Module._compile (internal/modules/cjs/loader.js:868:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:879:10)
    at Module.load (internal/modules/cjs/loader.js:731:32)
    at Function.Module._load (internal/modules/cjs/loader.js:644:12)
    at Module.require (internal/modules/cjs/loader.js:771:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/work/messages/proto/output/work_pb.js',
    '/home/work/frontend/web/client.js

删除整个 node_modules 文件夹并重新安装即可:

rm -rf node_modules
npm install 

我最终在 '../../messages/ 中添加了节点模块,并将其从引用原型文件的 pace 中删除,以避免冲突。