`yo angular`给出错误:npm ERR!代码ENOENT npm ERR! errno 34(是的,我已清理缓存并设置.npmignore)

时间:2014-02-23 06:09:07

标签: node.js angularjs npm yeoman yeoman-generator

我尝试在新项目目录中运行yo angular,但它在整个过程中的某处给了我ENOENT错误。是的,我查看了this similar question,但其解决方案对我不起作用。

我在运行yo angular之前在空的新项目目录上运行了这些东西:

touch .npmignore
npm cache clear
npm cache clean

但我仍然得到:

npm ERR! Error: ENOENT, lstat '/home/ubuntu/app_c/node_modules/grunt/    internal-tasks/bump.js'
npm ERR! If you need help, you may report this *entire* log, 
npm ERR! including the npm and node versions, at:
npm ERR!     <http://github.com/npm/npm/issues>

npm ERR! System Linux 3.2.0-54-virtual
npm ERR! command "/home/ubuntu/local/bin/node" "/home/ubuntu/local/bin/  npm" "install"
npm ERR! cwd /home/ubuntu/app_c
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR! path /home/ubuntu/app_c/node_modules/grunt/internal-tasks/bump. js
npm ERR! fstream_path /home/ubuntu/app_c/node_modules/grunt/internal-    tasks/bump.js
npm ERR! fstream_type File 
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /home/ubuntu/local/lib/node_modules/npm/          node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)

我该如何解决?


以下是全新Ubuntu Server 12.04.3上的history of ALL the commands, in chronological order, that I ran,因此您可以确切了解导致这一点的原因,以及我安装了各种软件包的位置。

此问题与npm github issue相关联。

5 个答案:

答案 0 :(得分:27)

编辑:npm update -g后跟npm cache clear应该适用于大多数人。但是,首次在Mac OS上安装时,您可能需要在首次安装nodeJS后导航到usr/local/lib/node_modules文件夹,并向&#34; Everyone&#34;授予读/写权限。在发布这些权限之前,Node无法全局安装其他工作流组件。你不想sudo npm install命令,因为那些工具在事后没有sudo访问权限。通过右键单击文件夹并转到&#34;获取信息&#34;更改读/写权限。然后在弹出窗口底部更改权限。

我在Windows 7计算机上遇到了同样的问题。以下是我要解决的步骤:

  • 修复节点安装
  • open elevated cli
  • 运行npm update -g
  • 运行npm cache clear
  • 运行npm install -g yo
  • 运行npm cache clear
  • 运行npm install -g generator-angular
  • 运行npm cache clear
  • 创建了新目录
  • 运行yo angular test
  • 运行npm cache clear
  • 运行grunt serve

我确实遇到了karma.conf.js的一些其他问题,其中路径对于bower_components而言\而不是/。另外,我注意到可选的角度模块是在我的app.js中注入的,尽管不是将它们全部包含在我的cli构建中。我在github上报告了这些问题。

答案 1 :(得分:2)

  

npm ERR!命令“/ home / ubuntu / local / bin / node”

您是否在用户目录中安装?我也做了ENOENT错误。

我不得不mkdir一些目录。如果它们不存在,请尝试在debug.log中创建一些目录,如lib / node_modules。

答案 2 :(得分:1)

将节点(和npm)更新到最新版本,这应该可以解决问题。

答案 3 :(得分:1)

这些ENOENT(有时是EACCES)错误通常是由npm的旧版本引起的。不幸的是,即使最新版本的node也不会分发当前版本的npm

安装node后,运行npm -v。如果您没有看到2.1.18或更高版本,则应按照此处的官方说明进行升级https://github.com/npm/npm/wiki/Troubleshooting#try-the-latest-stable-version-of-npm

在OSX上,快速升级方法是sudo npm install -g npm@latest

在Windows上,请按照Wiki中的指南或阅读此回答How do I update npm on Windows?

cmd.exe cd C:\Program Files (x86)\nodejs npm install npm@latest

答案 4 :(得分:0)

我的问题是 package.json 。也许这会对某人有所帮助。