fyn*_*yky 4 node.js socket.io browserify
我正在尝试使用 browserify 将我的服务器端代码捆绑到一个 JS 文件中。因此我在跑步
browserify --node -t coffeeify source/server.js.coffee -o deployment/server.js
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误
Error: Cannot find module '../build/Release/bufferutil' from '/My/Project/Path/node_modules/socket.io/node_modules/engine.io/node_modules/ws/lib'
Run Code Online (Sandbox Code Playgroud)
唯一的违规行似乎是require "socket.io". 当我删除它时,捆绑工作正常。如果我删除--node标志,它也可以正常工作。
当我检查目录时,“缺少”模块似乎在那里
ls node_modules/socket.io/node_modules/engine.io/node_modules/ws/build/Release/
Run Code Online (Sandbox Code Playgroud)
我懂了
.deps/ bufferutil.node* linker.lock obj.target/ validation.node*
Run Code Online (Sandbox Code Playgroud)
一些谷歌搜索让我找到了这个https://github.com/websockets/ws/issues/25。但这似乎是指旧版本的ws. ws模块中的版本已经超出了这个范围,我也已经尝试按照建议从源代码重建节点,但无济于事。
知道什么可能仍然导致此错误吗?
我遇到了同样的问题,我首先使用bufferutilthen with出错utf-8-validate,但是根据这个Readme.md,您需要将它们安装为带有--save选项的要求。希望这可以帮助。
有 2 个可选模块可以与 ws 模块一起安装。这些模块是二进制插件,可改进某些操作,但由于它们是二进制插件,因此它们需要编译,如果主机系统上未安装 c++ 编译器,则可能会失败。
npm install --save bufferutil:改进了内部缓冲区操作,允许更快地处理屏蔽的 WebSocket 帧和一般缓冲区操作。
npm install --save utf-8-validate:规范要求验证无效的 UTF-8 字符,其中一些验证无法在 JavaScript 中完成,因此需要二进制插件。在大多数情况下,出于安全目的,您已经在验证收到的输入,从而导致双重验证。但是如果你想 100% 符合规范并快速验证 UTF-8,那么这个模块是必须的。
| 归档时间: |
|
| 查看次数: |
3274 次 |
| 最近记录: |