`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 yo
和npm 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 -g
和 npm 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