npm模块已安装但不可用?

7

我在一个应用程序中实现了一个npm模块(称为wrench),我总是在本地测试。这总是没有问题的。然后我尝试在我的服务器上安装wrench。

npm install wrench像预期的那样工作,但是一旦涉及require("wrench"),我就会收到以下错误:

> require("wrench")
Error: Cannot find module 'wrench'
    at Function._resolveFilename (module.js:320:11)
    at Function._load (module.js:266:25)
    at require (module.js:348:19)
    at [object Context]:1:1
    at Interface.<anonymous> (repl.js:171:22)
    at Interface.emit (events.js:64:17)
    at Interface._onLine (readline.js:153:10)
    at Interface._line (readline.js:408:8)
    at Interface._ttyWrite (readline.js:585:14)
    at ReadStream.<anonymous> (readline.js:73:12)

如果我运行npm ls,我可以看到:

wrench@0.1.0

这里有什么我没注意到的吗?

谢谢,

Elias


1
你使用的是哪个版本的npm和node.js? - yojimbo87
1个回答

7

我相信npm ls会显示在npm上所有可用的包。如果要查看已安装的包,应该使用npm ls installed命令。

我有:

alfred@alfred-laptop:~$ node -v
v0.4.1

alfred@alfred-laptop:~$ npm --version
0.2.17

I issue:

alfred@alfred-laptop:~$ npm install wrench
npm info it worked if it ends with ok
npm info using npm@0.2.17
npm info using node@v0.4.1
npm info fetch http://registry.npmjs.org/wrench/-/wrench-0.1.0.tgz
npm info calculating sha1 /home/alfred/local/lib/node/.npm/nvm/0.0.6/package/v0.4.1/lib/node/.npm/.cache/wrench/0.1.0/package.tgz
npm info shasum 07440ad670068e0e81c8126c4641d1ca73b83557
npm info preinstall wrench@0.1.0
npm info install wrench@0.1.0
npm info postinstall wrench@0.1.0
npm info preactivate wrench@0.1.0
npm info activate wrench@0.1.0
npm info postactivate wrench@0.1.0
npm info build Success: wrench@0.1.0
npm ok

alfred@alfred-laptop:~$ node
> require('wrench')
{ rmdirSyncRecursive: [Function],
  copyDirSyncRecursive: [Function],
  chmodSyncRecursive: [Function] }
>

我的建议是使用最新版本的npm和node.js,然后再尝试一次。


2
您也可以尝试使用 npm list 命令来列出所有已安装的 Node 模块。 - shasi kanth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接