node:找不到模块(用brew安装的节点)

时间:2014-09-10 19:45:03

标签: node.js macos bash npm homebrew

我尝试运行我在节点中编写的脚本。为了调试并向您显示我的问题,我将脚本缩小为:

#! /usr/bin/env node

var prompt = require('prompt');

当我尝试运行脚本时,我得到了

module.js:340
  throw err;
        ^
Error: Cannot find module 'prompt'
  at Function.Module._resolveFilename (module.js:338:15)
  at Function.Module._load (module.js:280:25)
  at Module.require (module.js:364:17)
  at require (module.js:380:17)
  at Object.<anonymous> (/Users/derzyklop/S/dotfiles/bin/bugs:3:14)
  at Module._compile (module.js:456:26)
  at Object.Module._extensions..js (module.js:474:10)
  at Module.load (module.js:356:32)
  at Function.Module._load (module.js:312:12)
  at Function.Module.runMain (module.js:497:10)

我试图安装&#34;提示&#34;使用npm install prompt,全局使用npm install prompt -g。但我的剧本仍然无效。

&#34;提示&#34;似乎已安装,因为npm list --depth=0给了我

npm list

npm list -g --depth=0给了我

npm list -g

我通过brew安装了节点,所以我接下来尝试的是我通过brew remove npmbrew remove node删除了节点,并从here下载了OSX的安装程序。但这并没有改变任何事情。

我没有想法。为什么节点不能找到模块? 是否有可能npm list -g在我的脚本中搜索除require(..)之外的其他路径?


更新

该脚本位于〜/ dotfiles / bin / myscript 中的个人bin文件夹中,该文件由export PATH=~/dotfiles/bin:$PATH添加到$ PATH。

我发现,require()搜索 {prefix} / lib / node_modules 中的全局模块,其中 {prefix} npm config get prefix

所以我可以通过这样做来临时修复它:require('/usr/local/lib/node_modules/prompt');

./ node_modules 中搜索本地模块。在我的情况下,这必须是〜/ dotfiles / bin / node_modules ,所以我做了

cd ~/dotfiles/bin/
npm install prompt

并且我可以在我的脚本中使用require('prompt');

所以问题是:我如何让我的节点脚本在{executing directory}/node_modules中搜索模块? 仍然:为什么require()没有在/usr/local/lib/node_modules/中搜索?

1 个答案:

答案 0 :(得分:-2)

摩卡将成为你的朋友,这是解决这种情况的最快方法。安装mocha:

$ npm install -g mocha

此外,您的测试脚本也存在问题。因此,您可以使用以下内容制作测试脚本:test.js

var assert = require("assert")
describe('Array', function(){
  describe('#indexOf()', function(){
    it('should return -1 when the value is not present', function(){
      assert.equal(-1, [1,2,3].indexOf(5));
      assert.equal(-1, [1,2,3].indexOf(0));
    })
  })
})

然后运行简单:mocha test.js

我对此进行了测试,并且我从节点收到了与您相同的错误。即使你node test.js,你也会收到错误。希望这个摩卡解决方案适合您。

Refrences: 1. http://visionmedia.github.io/mocha/

相关问题