【发布时间】:2014-08-06 21:42:04
【问题描述】:
我正在尝试在 ubuntu 13.10 发行版中使用 express。我正在使用node version 0.10.29 和npm 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:
【问题讨论】:
-
是否安装了
mkdirp?sudo npm install mkdirp。如果已经安装了,你的节点进程所有者是否有权读取它? -
npm根本不需要 root,除非您尝试绑定到较低的端口(例如 80)。你得到什么错误?你没有忘记在你的项目目录中运行npm install吗? -
mkdirp已安装。不知道如何检查进程所有者... -
@Salem 在我运行
npm install时出现错误另外,出于某种原因我必须以sudo npm install运行它。错误包括cannot open /../../package.json和couldn't read dependencies另外我必须运行nodejs而不是nodeb/c 系统冲突。不知道这是否把一切都搞砸了 -
假设你的 express 项目放在
/a/b/c,尝试运行sudo chown -R $USER:$USER /a/b/c然后npm install和nodejs your_main_script.js。如果您在发布它们时遇到任何错误,请不要使用 sudo。
标签: node.js express ubuntu-13.10