我正在尝试在 Mac OSX Lion 上设置节点。一切似乎都正常,但我似乎无法从我的全局模块文件夹中导入任何模块。我得到错误,
Error: Cannot find module <module>
如果我运行这个:node -e require.paths,我得到的响应是:
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/"
非常感谢一些帮助,我不知道为什么我不能导入任何库。
如果你使用 npm >=1.0,你可以使用npm link <global-package>创建一个本地链接到已经全局安装的包。( 警告:操作系统必须支持符号链接。 )
npm link <global-package>
然而,这并非没有问题。
npm link 是一个开发工具。管理本地开发箱上的包 非常棒 。但是使用 npm link 进行部署基本上是在自找麻烦,因为它使得在不知不觉中更新事物变得超级容易。
作为替代方案,您可以在本地和全局安装包。
有关其他信息,请参阅