如何追踪导致require.paths错误的模块?

时间:2012-08-09 14:48:46

标签: node.js coffeescript

我已经设置了一个简单的咖啡脚本Web服务器:

http = require 'http'
express = require 'express'

http.createServer (req, res) ->
        res.writeHead 200
        res.end 'Hello, World!'
.listen 8888

console.log 'Server running at http://127.0.0.1:8888/'

当我运行它时,它很好并且提供页面:

~/jsfinder> coffee app.coffee
Server running at http://127.0.0.1:8888/

那里没问题。但是当我尝试使用nodemon时,我得到了:

~/jsfinder> nodemon app.coffee

Error: require.paths is removed. Use node_modules folders, or the NODE_PATH environment variable instead.
    at Function.Module._compile.Object.defineProperty.get (module.js:386:11)
    at Object.<anonymous> (/home/user/bin/nodemon@0.6.12:4:21)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain (module.js:492:10)
    at process.startup.processNextTick.process._tickCallback (node.js:244:9)

所以这是nodemon中的一个错误,或者我的npm全局中的一个模块实际上是使用require.paths。我跟后者去了。事实上,我在全球范围内安装了大约12个模块,所以我应该只是将它们全部打开并找到它吗?或者那个异常堆栈跟踪告诉我一些我没有看到的东西?这看起来像nodemon中的合法错误吗?

今天早上我跑了npm update -g没有问题,所以我的所有模块都应该是最新的。

更新:在节点模块目录中做了一些没有结果的grepping:

/usr/lib/nodejs/npm/node_modules> find . -type f -print0 | xargs -0 grep require.paths
/usr/lib/nodejs/npm/node_modules> cd ..
/usr/lib/nodejs/npm> find . -type f -print0 | xargs -0 grep require.paths
/usr/lib/nodejs/npm> cd ..
/usr/lib/nodejs> find . -type f -print0 | xargs -0 grep require.paths
./module.js:    throw new Error('require.paths is removed. Use ' +

并且:

~/jsfinder> find . -type f -print0 | xargs -0 grep require.paths
~/jsfinder> 

所以这告诉我全局或本地的模块都没有使用require.paths。的混淆即可。

1 个答案:

答案 0 :(得分:1)

我会选择前者并且愿意打赌错误在nodemon@0.6.12:4:21:)

我认为您的更新命令不起作用,因为nodemon应为@0.6.23