1

我试图安装 expressjs。

我在这里不断收到此错误:

 node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: No such module
    at Object.<anonymous> (/usr/share/npm/lib/utils/output.js:8:21)
    at Module._compile (module.js:432:26)
    at Object..js (module.js:450:10)
    at Module.load (module.js:351:31)
    at Function._load (module.js:310:12)
    at Module.require (module.js:357:17)
    at require (module.js:368:17)
    at Object.<anonymous> (/usr/share/npm/lib/utils/log.js:21:14)
    at Module._compile (module.js:432:26)
    at Object..js (module.js:450:10)

知道为什么会发生该错误。我安装了 npm 似乎没有任何问题。

这是我尝试用于安装 express js 的命令:

sudo npm install express -g

我也尝试使用 expressjs网站上的指南。对不起这是我的错。dint 安装最新版本的nodejs

4

2 回答 2

0

如果您有较新版本的 Node.js 和较旧版本的 NPM,就会发生这种情况。听起来你刚刚更新了 Node.js,所以现在你需要更新 NPM。

于 2012-04-13T15:34:36.093 回答
0

您很可能以某种方式使用旧的 NPM 版本。

node --version
npm --version

此外,Ubuntu 中有两个名称相似的软件包,node以及nodejs.

Fedora 也遵循类似的包命名方案。因此,必须将 nodejs 中的二进制文件从原始节点重命名为 nodejs。但是,从技术上讲,这并不符合规定:大多数 nodejs 程序(以及使用 npm 安装的库)都假定 node 二进制文件是 node.js。如果你想解决这个问题,最简单的方法就是将两者符号链接在一起。如果您采用这条路线,请不要安装处理业余分组无线电内容的节点包。

sudo ln -s /usr/bin/nodejs /usr/local/bin/node

或者,在 的情况下node,我建议使用n而不是安装链接。只需安装npm(将安装节点),然后删除npm,然后告诉 apt 清理它。为此,只需运行

sudo apt-get install npm
sudo npm install -g n
sudo n latest
sudo apt-get --purge remove npm
sudo apt-get autoremove

还有其他二进制发行版管理器甚至可以使用 shell 脚本,nvm但我个人更喜欢n. 只考虑napt件事:它安装到的节点二进制文件/usr/local/bin

于 2016-02-11T05:05:30.413 回答