我写了一个模块,不久前发布到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为空有关。不知道怎么解决。


当前回答

vim /etc/简介$ d/nodejs.sh

export NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript

其他回答

我遇到了与OP相同的错误,但通过挖掘日志,我可以看到sh: node:命令没有找到。

原来/usr/bin/node程序(symlink)不再安装apt install nodejs。一旦符号链接/usr/bin/node' tonodejs,npm install -g @angular/cli '成功。

在debian上安装它的正确方法是安装nodejs-legacy。

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

brew cleanup
brew link node
brew uninstall node
brew install node

希望它能帮助到别人:)

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

npm link wisp

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

在windows上,如果你只是做了一个干净的安装,你需要吹掉你的npm缓存在\AppData\Roaming