无法使用npm errno -4048 package.json安装angular cli

时间:2018-01-03 11:32:16

标签: node.js angular npm angular-cli

我尝试用npm安装角度cli。但是在执行命令npm install -g @ angular / cli时我收到以下错误。 我不是以管理员身份执行此命令,而是以用户身份执行此命令。

D:\AngularWorkstation>npm install -g @angular/cli
npm WARN sass-loader@6.0.6 requires a peer of node-sass@^4.0.0 but none is installed. You must install peer dependencies yourself.

npm ERR! path **D:\node_modules\node_modules\@angular\cli\node_modules\which\package.json.365294863
npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall rename
npm ERR! Error: EPERM: operation not permitted, rename 'D:\node_modules\node_modules\@angular\cli\node_modules\which\package.json.365294863' -> 'D:\node_modules\node_modules\@angular\cli\node_modules\which\package.json'
npm ERR!  { Error: EPERM: operation not permitted, rename 'D:\node_modules\node_modules\@angular\cli\node_modules\which\package.json.365294863' -> 'D:\node_modules\node_modules\@angular\cli\node_modules\which\package.json'
npm ERR!   cause:
npm ERR!    { Error: EPERM: operation not permitted, rename 'D:\node_modules\node_modules\@angular\cli\node_modules\which\package.json.365294863' ->** 'D:\node_modules\node_modules\@angular\cli\node_modules\which\package.json'
npm ERR!      errno: -4048,
npm ERR!      code: 'EPERM',
npm ERR!      syscall: 'rename',
npm ERR!      path: 'D:\\node_modules\\node_modules\\@angular\\cli\\node_modules\\which\\package.json.365294863',
npm ERR!      dest: 'D:\\node_modules\\node_modules\\@angular\\cli\\node_modules\\which\\package.json' },
npm ERR!   stack: 'Error: EPERM: operation not permitted, rename \'D:\\node_modules\\node_modules\\@angular\\cli\\node_modules\\which\\package.json.365294863\' -> \'D:\\node_modules\\node_modules\\@angular\\cli\\node_modules\\which\\package.json\'',
npm ERR!   errno: -4048,
npm ERR!   code: 'EPERM',
npm ERR!   syscall: 'rename',
npm ERR!   path: 'D:\\node_modules\\node_modules\\@angular\\cli\\node_modules\\which\\package.json.365294863',
npm ERR!   dest: 'D:\\node_modules\\node_modules\\@angular\\cli\\node_modules\\which\\package.json',
npm ERR!   parent: '@angular/cli' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\techno\AppData\Roaming\npm-cache\_logs\2018-01-03T09_14_35_602Z-debug.log

* PS:我正在使用Windows10操作系统。我还尝试将npm全局路径更改为'D:\ node_modules'以检查是否由于权限问题。但是输出是一样的。

node --version : v7.7.2
npm --version : 4.1.2*

3 个答案:

答案 0 :(得分:0)

从错误日志中,安装软件包时似乎存在一些权限问题。您可以通过两种方式专门解决此问题。

1)如果您尝试全局安装软件包,则必须使用管理用户或使用npm install <pkg_name> -g命令运行sudo npm install <pkg_name> -g命令。

要全局安装npm-packages,您可以按照以下步骤操作:

  • 以管理用户身份运行命令提示符。
  • 运行npm install <pkg_name> -g

2)您应该尝试转到Windows资源管理器中的顶级文件夹,右键单击&#34;获取更多信息&#34;选项然后转到权限部分,给自己所有权限,并告诉它以递归方式应用它们。

  • 或者只是您可以转到指定的npm working directory并编辑到权限部分,并允许当前用户的所有权限,并将所有递归目录的所有者更改为自身。

  • 然后再次启动Windows。

注意:如果要在本地安装npm-package,那么您应该位于本地项目目录中,并且可以尝试运行sudo npm install <pkg-name>命令来安装所需的软件包。使用sudo的目的是它将更改您的所有者权限,以便您可以授权当前用户运行npm命令。

答案 1 :(得分:0)

1)卸载节点 2)从[https://nodejs.org/en/][1]下载node的最新版本。 3)安装节点js

答案 2 :(得分:0)

尝试在Windows 10上使用npm安装Yeoman时遇到了类似的问题。罪魁祸首是我的计算机上安装的McAfee AV软件。 迈克菲似乎正在扫描npm试图对json文件进行的更改,并且作为扫描例程的一部分,阻止了重命名的发生。这导致npm引发4048错误,类似于您的输出错误。

要解决这个问题,我:

  1. 卸载McAfee并重新启动计算机,以便将其还原为Microsoft的内置安全软件。
  2. 重新运行npm install命令,它可以正常工作。

或者,您可以更改AV软件的设置,以不主动检查node_modules文件夹的文件更改。希望这可以使您的AV软件保持安装状态,并且npm命令也可以正常工作。