【问题标题】:Error with nodejs and expressnodejs和express出错
【发布时间】:2014-08-06 21:42:04
【问题描述】:

我正在尝试在 ubuntu 13.10 发行版中使用 express。我正在使用node version 0.10.29npm 1.4.14 当我使用express 这是我的输出:

    module.js:340
       throw err;
      ^
    Error: Cannot find module 'mkdirp'
      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> (/usr/bin/express:10: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)

此外,我必须使用 sudo npm,因为 npm 不起作用(我不确定这是否是问题的一部分 - 但我怀疑路径问题,不太确定)。我已经用谷歌搜索但无法解决问题。

编辑:我想我搞砸了。我无法重新安装 npm。这是$PATH的输出

bash: /home/qtrain/npm/bin:/usr/bin/yo:/home/qtrain/.node/bin:/home/qtrain/Enthought/Canopy_64bit/User/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/qtrain/.rvm/bin:/home/qtrain/.rvm/bin:/home/qtrain/.rvm/bin:

【问题讨论】:

  • 是否安装了mkdirpsudo npm install mkdirp。如果已经安装了,你的节点进程所有者是否有权读取它?
  • npm 根本不需要 root,除非您尝试绑定到较低的端口(例如 80)。你得到什么错误?你没有忘记在你的项目目录中运行npm install 吗?
  • mkdirp 已安装。不知道如何检查进程所有者...
  • @Salem 在我运行npm install 时出现错误另外,出于某种原因我必须以sudo npm install 运行它。错误包括cannot open /../../package.jsoncouldn't read dependencies 另外我必须运行nodejs 而不是node b/c 系统冲突。不知道这是否把一切都搞砸了
  • 假设你的 express 项目放在/a/b/c,尝试运行sudo chown -R $USER:$USER /a/b/c 然后npm installnodejs your_main_script.js。如果您在发布它们时遇到任何错误,请不要使用 sudo。

标签: node.js express ubuntu-13.10


【解决方案1】:

mkdirp 错误似乎源于使用迈克尔回答的chris-lea repo for node.js

修复:删除 PPA 和节点本身,然后重新安装如下。

1.) sudo apt-get install ppa-purge - 如果你还没有它

2.) sudo ppa-purge ppa:chris-lea/node.js

3.) sudo apt-get remove nodejs

4.) sudo apt-get remove npm

5.) sudo apt-get autoremove

6.) sudo apt-get install nodejs

7.) sudo apt-get install npm

8.) sudo apt-get install node-express

【讨论】:

    【解决方案2】:

    我在使用 npm 和 express 时遇到了类似的问题。我的解决方案是使用sudo apt-get remove nodejs从我的整个系统中卸载节点

    然后我按照此处http://chimera.labs.oreilly.com/books/1234000001808/ch01.html#chap5_id35941617的指示从源重新安装节点

    然后我不得不使用 sudo apt-get install npm 单独安装 npm,但它仍然不起作用。

    那时我意识到我从 chris lea 安装的 ppa repos 没有为 13.10 配置

    https://launchpad.net/~chris-lea/+archive/ubuntu/node.js-legacy

    删除它们并使用 sudo apt-get install npm 重新安装 npm 并使用 sudo apt-get install node-express 安装 express

    然后我就可以使用 npm 和 express

    希望这会有所帮助..

    【讨论】:

      猜你喜欢
      • 2018-03-07
      • 2023-03-15
      • 2019-06-04
      • 2018-06-11
      • 1970-01-01
      • 2019-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多