RunScriptError: Run "C:\Windows\system32\cmd.exe /d /s /c node-gyp rebuild

2020-12-07 16:35:41

不知道为啥报这样的错误。

看网友写的,我那些配置都没有问题,还是报错,这可咋弄。

想起了这几天解决的一个同样不知所以然的错误,是清空了npm的缓存,然后重新安装就成功了。

npm cache clean -f


果真这个问题也解决了。 电脑界的经典解决问题的思路。


重启解决一切问题。


如果你的问题没有解决,你可以参看下下面的文章,但我不知道能不能解决你的问题,因为我还没有用到就解决了。

参考地址 RunScriptError: Run "C:\Windows\system32\cmd.exe /d /s /c node-gyp rebuild"  


  在对vue项目进行cnpm i时,报错:RunScriptError: Run "C:\Windows\system32\cmd.exe /d /s /c node-gyp rebuild"

  我查看到关键词是“node-gyp",于是我以系统管理员身份,打开cmd,

  为node-gyp配置安装python2.7以及VC++ build Tools依赖

     cmd输入以下命令

     cnpm install -g node-gyp

        cnpm install --global --production windows-build-tools

   配置依赖

  cmd输入以下命令

      cnpm config set python python2.7
      cnpm config set msvs_version 2015
python配置环境变量

        (1) 右键点击"计算机",然后点击"属性"

        (2) 然后点击"高级系统设置"

      (3) 选择"系统变量"窗口下面的"Path",双击即可!

      (4) 然后在"Path"行,添加python安装路径即可(我的C:\Users\dida\.windows-build-tools\python27)。

        此时cmd输入python,可查看到版本号,说明安装成功

  但可能还会报错:未能加载Visual C++ 组件"VCBuild.exe"

        hack:执行node-gyp list,结果如下

       

       此时可观察到,倒数第二行报错,按提示输入命令node-gyp install

       再次执行,结果如下

      

此时删除node-modules,在项目目录下,重新打开cmd,执行cnpm i,安装成功

 


  • 2019-08-22 17:26:21

    详解javaScript的深拷贝

    最开始意识到深拷贝的重要性是在我使用redux的时候(react + redux), redux的机制要求在reducer中必须返回一个新的对象,而不能对原来的对象做改动,事实上,当时我当然不会主动犯这个错误,但很多时候,一不小心可能就会修改了原来的对象,例如:var newObj = obj; newObj.xxx = xxx 实际上,这个时候newObj和obj两个引用指向的是同一个对象,我修改了newObj,实际上也就等同于修改了obj,这,就是我和深浅拷贝的第一次相遇。

  • 2019-08-22 19:14:21

    Android Studio 3.5最新特性

    Android Studio(以下简称为AS) 3.5正式版终于发布了,从第一个bate版本发布到正式版本,历时三个半月。AS一直以来被开发者吐槽,因此谷歌也放慢了版本的变化,对测试版本进行大力度的优化,提高了稳定性。从3.3版本开始,谷歌启动了名为Project Marble的计划,意为谷歌团队致力于使集成开发环境(IDE)的基本功能和流程变得坚如磐石,同时精炼和完善面向用户的功能。而AS 3.5则是Project Marble主要成果的版本,下面来介绍主要成果。

  • 2019-08-27 05:43:13

    Laravel 门面自动补全工具 laravel-ide-helper

    当我们在 PhpStorm 编辑器中,开发 Laravel 框架的项目时,很多类方法都不能自动补全和定位,比如 Facade 门面的方法,DB::table()、Route::get() 等。

  • 2019-08-28 08:28:36

    Js apply,call方法详解,及其apply()方法的妙用

    在给对象参数的情况下,如果参数的形式是数组的时候,比如apply示例里面传递了参数arguments,这个参数是数组类型,并且在调用Person的时候参数的列表是对应一致的(也就是Person和Student的参数列表前两位是一致的) 就可以采用 apply , 如果我的Person的参数列表是这样的(age,name),而Student的参数列表是(name,age,grade),这样就可以用call来实现了,也就是直接指定参数列表对应值的位置(Person.call(this,age,name,grade));

  • 2019-08-28 08:49:47

    Nginx + fastcgi + php 的原理与关系

    CGI对每个请求会parse一遍对应脚本的配置文件(如php.ini), 加载配置和扩展,初始化执行环境,性能非常差,所有有了下面的流程: