今天在维护一个基于 vue-cli 创建的旧项目,在安装依赖时会报错,具体信息如下:

gyp ERR! stack Error: spawn C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\15.0\Bin\MSBuild.exe ENOENT

于是我顺着这个路径 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\15.0\Bin\MSBuild.exe 看到底有没有这个目录,结果到了只匹配到了 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\15.0 后面的路径没有匹配,但是同级目录有个 Current 子目录 ,然后顺着他能找到 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe 。此时我灵机一动,如果把 Current 目录名称改成 15.0 不就可以了,于是改完后,重新安装一下, 结果还是报了是其他的编译错误信息。

然后,上网查了一下,有人说是 node-sass@4.x 的问题,它只能使用 vs2017 来编译,而不能使用 vs2019,但是如果安装 node-sass@5.x 就不会有这个问题,所以我就试试安装 node-sass@5.x。安装确实好顺利,没有任何问题,可是在启动项目的时候,sass-loader 却报错了:

Error: Node Sass version 5.0.0 is incompatible with ^4.0.0.

这是 vuesass-loader 报的错,不兼容 node-sass5.0.0。所以升级 node-sass 的方式也是行不通。

这时候,只能想办法安装一个 vs2017 了,但是我平时在搞 UE4 用的是 vs2019,不想卸掉重新安装旧版的。幸好 ,visual studio install 里面可以同时安装多个不同版本的 vs,所以我装了 vs2017 后,再设置一下 npm 的 msvs_version 变量:

npm config set msvs_version 2017

然后,再安装 node-sass@4.x 就成功了。问题至此已解决。

另外,目前 sass 官网已经废弃了 node-sass 了,而是推荐使用 dart sass ,所以也可以改成一下 sass-loader 的配置,这样就不需要安装 node-sass ,就不会出现编译错误了。至于怎么修改配置,这里也不展开介绍,有兴趣的可以自行查找一下。

安装 node-sass4.x 遇到的问题及解决方案的更多相关文章

  1. 在Linux Mint上安装node.js和npm

    1.安装Node.js 前端开发过程中,很多项目使用npm的http-server的模块来运行一个静态的服务器,我个人在Dell的笔记本上安装的是Linux Mint最新版本,所以想尝试一下在Linu ...

  2. Mac 下使用homebrew 安装node后全局安装找不到问题

    Homebrew 是mac上的包管理工具,其官网: http://brew.sh/ 在使用brew安装node之后安装一些常见工具比如 gulp npm install -g gulp 提示安装成功之 ...

  3. ubuntu kylin 14.04安装Node.js和Famous

    默认使用软件中心安装node.js,然后参考https://famo.us/install进行安装 1.sudo apt-get install git 2.npm install -g yo gru ...

  4. TODO:Ubuntu下安装Node

    TODO:Ubuntu下安装Node Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高 ...

  5. centos 6.5安装node.js

    1.检查是否安装gcc编译器 rpm -q gcc rpm -q gcc-c++ 2.如果没有安装则通过以下代码安装gcc编译器 yum -y install gcc-c++ kernel-devel ...

  6. [译]How to Install Node.js on Ubuntu 14.04 如何在ubuntu14.04上安装node.js

    原文链接为 http://www.hostingadvice.com/how-to/install-nodejs-ubuntu-14-04/ 由作者Jacob Nicholson 发表于October ...

  7. 在亚马逊amazon的AWS上安装Node和MongoDB服务器

    在亚马逊amazon的AWS上安装Node和MongoDB服务器 在建立AWS上账号.创建EC2 ,用putty链接上之后,就可以用下面的方法开始安装. !!! 如果不是是自己建立的EC2, 而是由B ...

  8. Linux 安装node.js ---- 源码编译的方式

    一 : 普通用户: 安装前准备环境: 1.检查Linux 版本 命令: cat /etc/redhat-release 2.检查 gcc.gcc-c++ 是否安装过 命令: rpm -q gcc rp ...

  9. CentOS 6 中安装Node.js 4.0 版本或以上

    如果想在CentOS 6 中安装Node.js >4.0,如果通过以往的方式安装: wget http://nodejs.org/dist/v4.0.0/node-v4.0.0.tar.gz t ...

  10. Windows下安装node

    1.安装node及npm Windows下安装软件都是傻瓜式安装,首先登陆官网(https://nodejs.org/en/)下载对应的node程序,然后双击进行安装.安装过程基本上是点击'Next' ...

随机推荐

  1. 热力图 vue 项目中使用热力图插件 “heatmap.js”(保姆式教程)

    我现在写的这项目是用CDN引入 heatmap.js, 可根据自己项目情况使用哪种方式引入插件. 官网地址 "https://www.patrick-wied.at/static/heatm ...

  2. Dubbo的负载均衡策略&容错策略

    dubbo的负载均衡策略 RandomLoadBalance 随机调用负载均衡 默认方式该类实现了抽象的AbstractLoadBalance接口,重写了doSelect方法,看方法的细节就是首先遍历 ...

  3. 增强for循环的用法

    一.增强for循环 增强for循环的作用: 简化迭代器的书写格式.(注意:增强for循环的底层还是使用了迭代器遍历.)增强for循环的适用范围: 如果是实现了Iterable接口的对象或者是数组对象都 ...

  4. IIS日志文件越来越大导致C盘空间变小处理方法

    问题概述 C:\inetpub\logs\LogFiles\W3SVC文件夹越来越大,IIS日志会消耗大量的硬盘空间,有潜在写满整个硬盘空间的风险,为了解决这个问题很多用户会选择关闭日志,但显然IIS ...

  5. 扫描仪扫描文件处理-Photoshop批处理弹出色阶设置框解决

    为什么我录制动作明明设置的有色阶,最后批处理的时候仍然弹出了色阶设置框?   出现问题原因可能是你在录入设置色阶动作的时候,是彩色图片或者灰阶中的一种,而批处理的时候遇到了另外一种色彩模式.所以动作中 ...

  6. selenium-无窗口模式

    引入options即可 from time import sleep from selenium import webdriver from selenium.webdriver.chrome.opt ...

  7. JavaSE学习笔记03流程控制

    Java流程控制 1.顺序结构 java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句往下执行. 顺序结构是最简单的算法结构,它是任何一个算法都离不开的一种基本算法结构. 2. 选择结构 ...

  8. Linux命令之tab 键补全

    tab 键补全 tab 键可以实现命令及路径等补全,提高输入效率,避免出错 命令补全 用户给定的字符串只有一条惟一对应的命令,直接补全, 两次Tab会给出列表 内部命令: 外部命令:bash根据PAT ...

  9. 【API进阶之路】研发需求突增3倍,测试团队集体闹离职

    摘要:最近研发的需求量涨了3倍,开发团队拼命赶进度,可苦了测试团队. 本以为从一线研发转管理后会清闲一些,但是没想到,我还要充当救火队员的角色. 到了第四季度,各业务部门都在憋着劲儿冲业绩,毕竟这跟年 ...

  10. abstract关键字的说法

    含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象.含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必 ...