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

Posted

技术标签:

【中文标题】`yo angular` 给出错误:npm ERR!代码 ENOENT npm 错误! errno 34(是的,我已经清理了缓存并设置了 .npmignore)【英文标题】:`yo angular` gives error: npm ERR! code ENOENT npm ERR! errno 34 (yes I have cleaned the cache and set .npmignore) 【发布时间】:2014-03-24 18:21:05 【问题描述】:

我试图在一个新的项目目录中运行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。

【问题讨论】:

npm cache clean之后尝试重新安装哟。 在一个新目录上,在npm cache clean 之后,我同时做了npm install -g yonpm install -g generator-angular。并在运行yo angular 之前再次执行npm cache clean。我仍然得到 ENOENT。 我刚刚遇到了同样的问题。 “npm update -g”为我修复了它。 npm cache clean 为我工作! 【参考方案1】:

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

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

【参考方案3】:

编辑:npm update -g 后跟 npm cache clear 应该适用于大多数情况。但是,在 Mac OS 上首次安装时,您可能需要在首次安装 nodeJS 后导航到您的 usr/local/lib/node_modules 文件夹并授予“所有人”读/写权限。在释放这些权限之前,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 的其他一些问题,其中路径有一个 \ 而不是 / 用于 bower_components。此外,我注意到可选的角度模块被注入到我的 app.js 中,尽管没有将它们全部包含在我从 cli 构建的 yo 中。我已经在github上报告了这些问题。

【讨论】:

谢谢 - 这在 Mac OS X 上对我有用。在 yeoman 开始抱怨我试图用 sudo 运行它之前,一切都运行良好。我必须进行的 npm 路径更改一定把所有东西都弄得一团糟,但这解决了... 这为我解决了问题。我认为关键步骤是npm update -g,然后是npm cache clear 谢谢。对我来说帮助重新安装 NodeJS npm update -gnpm cache clear 也为我解决了这个问题。一旦这些完成,我就能成功yo angular【参考方案4】:

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

【讨论】:

【参考方案5】:

这些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

【讨论】:

以上是关于`yo angular` 给出错误:npm ERR!代码 ENOENT npm 错误! errno 34(是的,我已经清理了缓存并设置了 .npmignore)的主要内容,如果未能解决你的问题,请参考以下文章

npm ERR 是啥原因!结束后写,当我创建一个 Angular 4 应用程序时?

Heroku 最近开始在 Webpack 构建期间给出部署错误“npm ERR!code ELIFECYCLE”

npm run build 给出 npm ERR!代码生命周期

npm 错误!使用 ng new appname 创建新项目的代码 ERR_SOCKET_TIMEOUT

从终端运行 npm 时出现“module.js:557 throw err”

gyp ERR,Npm 无法获取本地颁发者证书