"yo angular"给出错误:npm ERR!代码ENOENT npm ERR!errno34(



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

EDIT:npm update -g后面跟着npm cache clear应该适用于大多数情况。然而,当第一次在Mac OS上安装时,您可能需要在第一次安装nodeJS后导航到usr/local/lib/node_modules文件夹,并向"Everyone"授予读/写权限。在释放这些权限之前,节点将无法全局安装其他工作流组件。您不希望sudo npm install命令,因为这样这些工具就无法在事后运行sudo访问权限。通过右键单击文件夹并转到"获取信息",然后在弹出窗口底部更改权限,可以更改读/写权限。

我在Windows7机器上也遇到了同样的问题。以下是我解决问题的步骤:

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

npm ERR!命令"/home/ubuntu/local/bin/node">

是否在用户目录中安装?我做到了,也犯了很多错误。

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

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

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

安装完node后,运行npm -v。如果您没有看到2.1.18或更高版本,您应该按照此处的官方说明进行升级https://github.com/npm/npm/wiki/Troubleshooting#try-npm 的最新稳定版本

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

在Windows上,请遵循wiki中的指南或阅读以下答案:如何在Windows上更新npm?

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

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

这个问题实际上是由几个因素引起的,奇怪的是npm无法给出问题的确切原因。

在我的案例中,这个问题是由导入scss文件引起的。指定的路径不正确。

最新更新