【发布时间】:2013-05-26 00:46:08
【问题描述】:
Meteorite 安装得很好(我必须使用 sudo -H npm install -g meteorite 作为 Meteorite 的安装说明推荐的),然后我可以使用它在我的项目中安装标准 Meteor 包,例如mrt add jquery。但是,如果我尝试从 Atmosphere 安装任何软件包,例如mrt add router 或 mrt add font-awesome,我得到这个输出:
Installing Meteor
branch: https://github.com/meteor/meteor.git#master
Installing smart packages
/usr/local/lib/node_modules/meteorite/node_modules/ddp/node_modules/ws/lib/WebSocket.js:175
else throw new Error('not opened');
^
Error: not opened
at WebSocket.send (/usr/local/lib/node_modules/meteorite/node_modules/ddp/node_modules/ws/lib/WebSocket.js:175:16)
at DDPClient._send (/usr/local/lib/node_modules/meteorite/node_modules/ddp/lib/ddp-client.js:77:15)
at WebSocket.<anonymous> (/usr/local/lib/node_modules/meteorite/node_modules/ddp/lib/ddp-client.js:49:10)
at WebSocket.EventEmitter.emit (events.js:92:17)
at WebSocket.establishConnection (/usr/local/lib/node_modules/meteorite/node_modules/ddp/node_modules/ws/lib/WebSocket.js:576:8)
at ClientRequest.<anonymous> (/usr/local/lib/node_modules/meteorite/node_modules/ddp/node_modules/ws/lib/WebSocket.js:488:25)
at ClientRequest.g (events.js:175:14)
at ClientRequest.EventEmitter.emit (events.js:106:17)
at CleartextStream.socketOnData (http.js:1587:11)
at CleartextStream.read [as _read] (tls.js:477:10)
mrt run 可以正常工作!我在 Meteor v0.6.3.1 和 Meteorite v0.5.1 上。任何想法都将不胜感激,谢谢!
【问题讨论】:
-
我也看到了这个错误。 Ubuntu 13.04 Node.js 0.10.8
-
当您使用
mrt添加大气包时,它会将包的本地副本存储在您的~/.meteorite目录下。由于您以 root 身份安装了npm和meteorite,但您使用用户帐户运行mrt,这可能只是文件权限问题吗? (即它实际上无法将路由器包的内容写入~/.meteorite/packages/router) -
据说运行
sudo -H npm install -g meteorite可以防止这个问题。我已经运行了mtr uninstall; mtr uninstall --system; rm -rf ~/.npm,它删除了 ~/.meteorite,但这些都没有奏效。 -- 根据您的建议,我刚才rm -rf ~/.meteorite,再次尝试无济于事。 -
似乎不支持 tls。更改
meteoriteArgs.repoPort = meteoriteArgs.repoPort || 443;以使用 /usr/local/lib/node_modules/meteorite/lib/atmosphere.js 中的端口 80 可以解决此问题。 -
为了记录,您可以运行
mrt --repoPort=80而不必弄乱源代码。