小编典典

如何在 Node 中导入全局模块?我得到“错误:找不到模块“?

all

我正在尝试在 Mac OSX Lion 上设置节点。一切似乎都正常,但我似乎无法从我的全局模块文件夹中导入任何模块。我得到错误,

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/"

非常感谢一些帮助,我不知道为什么我不能导入任何库。


阅读 63

收藏
2022-08-21

共1个答案

小编典典

如果你使用 npm >=1.0,你可以使用npm link <global-package>创建一个本地链接到已经全局安装的包。(
警告:操作系统必须支持符号链接。

然而,这并非没有问题。

npm link 是一个开发工具。管理本地开发箱上的包 非常棒 。但是使用 npm link
进行部署基本上是在自找麻烦,因为它使得在不知不觉中更新事物变得超级容易。

作为替代方案,您可以在本地和全局安装包。

有关其他信息,请参阅

2022-08-21