我正在尝试在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:
答案 0 :(得分:2)
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
答案 1 :(得分:0)
我在使用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
安装快递
然后我能够使用npm并表达
希望这会有所帮助..