我正在尝试在 Mac OSX Lion 上设置 Node。一切似乎都正常,但我似乎无法从我的全局模块文件夹中导入任何模块。我得到了错误,
Error: Cannot find module <module>
如果我运行这个:node -e require.paths
,我得到的响应是:
[ '/usr/local/lib/node_modules',
'/Users/Me/.node_modules',
'/Users/Me/.node_libraries',
'/usr/local/Cellar/node/0.4.12/lib/node' ]
这是正确的,我的模块确实安装在/usr/local/lib/node_modules 中。但是,当我尝试运行脚本时,我得到了这个:
Error: Cannot find module 'socket.io'
at Function._resolveFilename (module.js:326:11)
at Function._load (module.js:271:25)
at require (module.js:355:19)
at Object.<anonymous> (/Users/Me/node/server.js:2:10)
at Module._compile (module.js:411:26)
at Object..js (module.js:417:10)
at Module.load (module.js:343:31)
at Function._load (module.js:302:12)
at Array.<anonymous> (module.js:430:10)
at EventEmitter._tickCallback (node.js:126:26)
我的 .bash_profile 如下所示:
export PATH=/usr/local/mysql/bin:$PATH
export NODE_PATH=/usr/local/lib/node_modules
export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:/usr/local/mysql/lib/"
非常感谢一些帮助,我不知道为什么我不能导入任何库。
最佳答案
Node.js 使用环境变量 NODE_PATH
来允许指定要包含在模块搜索路径中的其他目录。您可以使用 npm
本身通过 npm root -g
命令告诉您全局模块的存储位置。因此,将这两者放在一起,您可以使用以下命令(在 Linux-ish 上)确保全局模块包含在您的搜索路径中
export NODE_PATH=$(npm root --quiet -g)
关于node.js - 如何在 Node 中导入全局模块?我得到 "Error: Cannot find module <module>"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7970793/