错误:require.paths 被删除。当运行node.js和socket.io时

2024-01-03

(javascript) Iv 在运行 github 上的 socket.io 示例时遇到错误https://github.com/LearnBoost/socket.io.git https://github.com/LearnBoost/socket.io.git

当我运行 -> node app.js 时 它说。 错误:require.paths 被删除。请改用 node_modules 文件夹或 NODE_PATH 环境变量。

有人可以告诉我出了什么问题吗? 我尝试过的每个 socket.io 示例中总是会出现此错误。


我在与一个人一起工作时遇到了这个问题云铸造样品 http://support.cloudfoundry.com/entries/505133-deploying-a-node-js-app-with-npm-dependencies。他们告诉您添加的违规行是:

require.paths.unshift('./node_modules')

这显然是告诉节点在什么路径中搜索模块的一种方式require,在您不提供显式路径的情况下。我在某处读到,当您传入的字符串不以点或斜线开头时。

据我所知,这是让 Node 0.4 应用程序在 node_modules 目录中搜索所必需的。但在 Node 0.6 中,您应该通过环境和路径中的设置来解决这个问题(尽管在 0.6 安装中它似乎默认对我有效)。

我遇到了麻烦,因为云部署在 Node 0.4 上,而我的本地开发设置在 Node 0.6 上。这条线让我在本地崩溃了,但把它放在一边却在云端崩溃了。我的解决方案是删除它并指示云使用 0.6:

vmc push <appname> --runtime=node06

之后一切似乎都顺利了。更好:我发现你可以编辑你的manifest.yml文件来告诉它在推送过程中自动执行此操作,而不需要命令行开关:

---
applications:
  .:
    name: myapp
    runtime: node06  # added this line
    framework:
      name: node
      info:
        mem: 64M
        description: Node.js Application
        exec: n

(etc.)

顺便说一句...如果有必要双重支持需要 require.paths 的旧版本节点,则可以根据测试有条件地运行该线路process.version:

http://nodejs.org/docs/v0.4.9/api/process.html#process.version http://nodejs.org/docs/v0.4.9/api/process.html#process.version

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

错误:require.paths 被删除。当运行node.js和socket.io时 的相关文章

随机推荐