节点:错误:找不到模块

时间:2015-07-20 12:53:16

标签: bash path npm

我用Homebrew安装了Node和NPM。然后我安装了Susi:

npm install -g susi
/Users/oliver/.node/bin/susi -> /Users/oliver/.node/lib/node_modules/susi/susi
susi@0.2.3 /Users/oliver/.node/lib/node_modules/susi
├── hairlip@0.0.1
├── tiny-ssi@0.0.2
├── commonmark@0.12.0
└── moment@2.8.3

但是尝试使用Susi,我收到错误:

-bash: susi: command not found

所以,我编辑了.profile。 echo $ PATH返回:

/Users/oliver/.rbenv/shims:/usr/local/share/npm/bin:/usr/local/sbin:/usr/local/mysql/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Users/oliver/.node/lib/node_modules

但是,它无法找到。我假设我需要告诉它查看/ nodule_modules中的目录,但我不确定如何去做。 NPM不应该自动管理吗?我的$ PATH设置正确还是错过了什么?

(很抱歉不得不问一些基本的东西。任何帮助都将不胜感激!)

编辑:

我按照此处的说明完全卸载了Node和NPM:http://hungred.com/how-to/completely-removing-nodejs-npm/

这次我使用NPM安装Jasmine(全球)。

$ which jasmine
/usr/local/bin/jasmine

$ echo $NODE_PATH
/usr/local/bin

但是当我尝试使用Jasmine时:

$ node jasmine bob_test.spec.js 

我收到此错误:

module.js:338
    throw err;
          ^
Error: Cannot find module '/Users/oliver/exercism/javascript/bob/jasmine'
    at Function.Module._resolveFilename (module.js:336:15)
    at Function.Module._load (module.js:278:25)
    at Function.Module.runMain (module.js:501:10)
    at startup (node.js:129:16)
    at node.js:814:3

Node似乎只在寻找本地安装。我完全糊涂了......

编辑:

我从github克隆了一个回购。然后:

$ npm install

所有依赖项都安装在node_modules文件夹中。但是,使用node运行代码,我得到:

Error: Cannot find module 'contra.emitter'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
...

尽管contra.emitter已明确安装在node_modules文件夹中。我错过了一些非常明显的东西吗?

1 个答案:

答案 0 :(得分:0)

尝试做:

npm install -g npm

更新npm。

再次尝试安装susi

理想情况下,susi会在/usr/local/bin

中设置