我写了一个模块,不久前发布到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,从Nodejs无法找到安装在Windows上的模块?对我有用的是运行NPM link

npm link wisp

其他回答

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

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

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

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

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

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

对我来说没问题。

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

我必须将C:\Users\{Username}\AppData\Roaming\npm添加到我的env变量中,然后我才能安装东西。

对于Mac用户的It's Best使用手动安装:

To minimize the chance of permissions errors, you can configure npm to use a different directory. In this example, it will be a hidden directory on your home folder. Back-up your computer before you start. Make a directory for global installations: mkdir ~/.npm-global Configure npm to use the new directory path: npm config set prefix '~/.npm-global' Open or create a ~/.profile file and add this line: export PATH=~/.npm-global/bin:$PATH Back on the command line, update your system variables: source ~/.profile Test: Download a package globally without using sudo. npm install -g jshint Instead of steps 2-4, you can use the corresponding ENV variable (e.g. if you don't want to modify ~/.profile): NPM_CONFIG_PREFIX=~/.npm-global

参考资料:https://docs.npmjs.com/getting-started/fixing-npm-permissions