【发布时间】:2019-08-18 11:28:52
【问题描述】:
我正在尝试构建一个grpc Web 客户端,我需要打包代码来解析require 语句。
我已将protos 编译为js,如果我将它们放在我安装node modules 的当前文件夹中,它就可以工作。
问题是如果我在其他地方有 compiled proto 并且我从那里需要它们,webpack 会在该路径中查找 node modules。
来自我的client.js
工作版本:
const {StopRequest, StopReply} = require('./work_pb.js');
有问题的版本:
const {StopRequest, StopReply} = require('../../../messages/proto/output/work_pb.js');
在最后一种情况下,它在../../../messages/proto/output/ 中查找node modules。
node modules 安装在我的client.js 所在的当前路径以及我运行npx webpack client.js 的位置。
ERROR in /home/xxx/yyy/zzz/messages/proto/output/work_pb.js
Module not found: Error: Can't resolve 'google-protobuf' in '/home/xxx/yyy/zzz/messages/proto/output'
@ /home/xxx/yyy/zzz/messages/proto/output/work_pb.js 11:11-37
@ ./client.js
我如何告诉webpack 在当前路径中查找节点模块,而不是在已编译原型的路径中?
【问题讨论】:
标签: web webpack protocol-buffers grpc