21

我试图yo angular在一个新的项目目录中运行,但它在途中的某个地方给了我 ENOENT 错误。是的,我看过这个类似的问题,但它的解决方案对我不起作用。

在运行之前,我在空的新项目目录上运行了这些东西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 上运行的所有命令的历史记录,按时间顺序排列,因此您可以确切地看到导致这一点的原因,以及我安装了各种软件包的位置。

这个问题链接到一个 npm github 问题

4

5 回答 5

27

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

我在 Windows 7 机器上遇到了同样的问题。以下是我为解决而采取的步骤:

  • 修复节点安装
  • 打开高架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 的其他一些问题,其中路径有 a\而不是/bower_components。此外,我注意到可选的 Angular 模块被注入到我的 app.js 中,尽管没有将它们全部包含在我从 cli 构建的 yo 中。我已经在 github 上报告了这些问题。

于 2014-06-09T18:11:00.673 回答
2

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

你是安装在用户目录中吗?我也遇到过 ENOENT 错误。

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

于 2014-06-06T02:05:52.460 回答
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 中的指南或阅读此答案如何在 Windows 上更新 npm?

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

于 2015-01-16T14:28:30.107 回答
1

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

于 2014-05-24T16:53:02.500 回答
0

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

于 2014-06-14T08:55:59.870 回答