我写了一个模块,不久前发布到npm (https://npmjs.org/package/wisp)

所以它可以从命令行安装:

I -g wisp

然而,当我从命令行运行它时,我一直得到一个错误,乐观主义者没有安装:

$ wisp 
Error: Cannot find module 'optimist'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at Object.<anonymous> (/usr/local/lib/node_modules/wisp/wisp:12:10)
    at Object.<anonymous> (/usr/local/lib/node_modules/wisp/wisp:96:4)
    at Module._compile (module.js:449:26)
    at Object.exports.run (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:68:25)
    at compileScript (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/command.js:135:29)
    at fs.stat.notSources.(anonymous function) (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/command.js:110:18)

但是,我已经在包中指定了。Json作为依赖项:

{
  "name": "wisp",
  "author": "Brendan Scarvell <bscarvell@gmail.com>",
  "version": "0.1.0",
  "description": "Global nodejs file server",
  "dependencies": {
    "optimist": "~0.3.4"
  },
  "repository": "git://github.com/tehlulz/wisp",
  "bin": {
    "wisp" : "./wisp"
  }
}

有人知道怎么才能让它运行起来吗?我知道这与bin部分添加可执行文件到bin和该目录中的node_modules为空有关。不知道怎么解决。


当前回答

我用简单的方法做到了这一点……

从控制面板卸载节点[Windows 7] 重新安装节点 安装量角器 NPM安装——全局——详细量角器 更新web驱动程序管理器。

对我来说没问题。

希望这对你有帮助....

其他回答

在根目录下运行Ubuntu的一台测试服务器上遇到了同样的问题。然后使用useradd -m myuser创建一个新用户,并以myuser的身份安装所有内容(nvm, node, packages)。现在工作得很好。

对于Windows,从Nodejs无法找到安装在Windows上的模块?对我有用的是运行NPM link

npm link wisp

对于一些(像我一样)其他方法都不起作用的人来说,试试这个:

brew cleanup
brew link node
brew uninstall node
brew install node

希望它能帮助到别人:)

遇到同样的问题,并通过在我的zshrc中添加下面的行来解决它。 基于您的shell,您可以尝试在您的主位置中添加您的rc文件,用于bash和zsh - bashrc/zshrc文件。

export NODE_PATH="/usr/local/lib/node_modules"

如果需要直接添加到zshrc文件中,使用此命令

echo 'export NODE_PATH="/usr/local/lib/node_modules"' >> ~/.zshrc

在我的例子中,node和npm都在同一个路径(/usr/bin)。NODE_PATH是空的,所以npm将全局模块放在/usr/lib/node_modules中,require(…)成功地找到了它们。 唯一的例外是npm模块,它随nodejs包一起提供。因为我使用的是64位系统,所以它被放置在/usr/lib64/node_modules中。这不是require(…)在空NODE_PATH和从/usr/bin开始的节点的情况下搜索的地方。所以我有两个选择:

链接/usr/lib64/node_modules/npm到/usr/lib/node_modules/npm 将模块从/usr/lib/node_modules/*移动到/usr/lib64/node_modules/,并设置NODE_PATH=/usr/lib64/node_modules

这两个工作。我使用OpenSUSE 42.1和更新存储库中的nodejs包。版本为4.4.5。