7

我正在将项目升级到 node-sass 4.9.4,因为我们以前的版本 3.13.1 不再受支持,如果尝试从 github 加载将导致 404。问题是每当我尝试这样做时,npm 都会不断尝试加载node-sass@3.13.1

我曾尝试这样做npm install node-sass@4.9.4npm install node-sass@4.9.3npm install node-sass@latest它每次都尝试加载 3.13.1 导致以下错误:

$ npm install node-sass@4.9.3

> node-sass@3.13.1 install D:\Projects\Repos\bluemill\mle-website\node_modules\gulp-sass\node_modules\node-sass
> node scripts/install.js

Downloading binary from https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-57_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-57_binding.node":

HTTP error 404 Not Found

Hint: If github.com is not accessible in your location
      try setting a proxy via HTTP_PROXY, e.g.

      export HTTP_PROXY=http://example.com:1234

or configure npm proxy via

      npm config set proxy http://example.com:8080

> node-sass@4.9.3 install D:\Projects\Repos\bluemill\mle-website\node_modules\node-sass
> node scripts/install.js

Downloading binary from https://github.com/sass/node-sass/releases/download/v4.9.3/win32-x64-57_binding.node
Download complete
Binary saved to D:\Projects\Repos\bluemill\mle-website\node_modules\node-sass\vendor\win32-x64-57\binding.node
Caching binary to C:\Users\Tyler\AppData\Roaming\npm-cache\node-sass\4.9.3\win32-x64-57_binding.node

> node-sass@3.13.1 postinstall D:\Projects\Repos\bluemill\mle-website\node_modules\gulp-sass\node_modules\node-sass
> node scripts/build.js

我尝试过的其他事情:

  • 重新启动我的电脑
  • 重新启动泊坞窗
  • 重新启动 git bash(我在 Windows 上)
  • 跑步npm cache clean --force
  • 转到 node-sass 4.9.4 npm-cache 文件夹并手动下载和安装绑定
  • "node-sass": "^4.9.0"在 package.json 中设置正确的文件夹
  • "node-sass": { "version": "4.9.4"...在 package-lock.json 中设置
  • 检查 package.json 和 package-lock.json 是否有可能设置为不同版本的重复 node-sass 要求(没有其他版本)
  • 删除 node_modules 文件夹并npm install再次运行
  • 跑步npm rebuild node-sass

无论我做什么,它总是首先尝试加载 3.13.1 并导致 404 错误。我完全不知道接下来可以尝试什么。我已经仔细检查了我是否在与正确的 package.json 相同的目录中运行命令至少 5 次。

我第一次收到错误时,我修复了 package.json 并且它工作了,然后在执行 docker-compose up 时出现错误,所以我重新npm install确认它具有所有模块,从那时起它无论如何都只加载 3.13.1我愿意。

4

5 回答 5

3

方法一

sudo npm i -g node-gyp


sudo npm install node-sass --save-dev --unsafe-perm=true

sudo rm -rf node_modules && npm rebuild node-sass && npm i

方法二

sudo npm install --unsafe-perm -g node-sass

推荐:方法3

rm -rf ./node_modules
sudo rm package-lock.json 
sudo npm install --unsafe-perm

如果您尝试仅安装 node-sass 或 laravel-mix

sudo npm install --unsafe-perm node-sass
sudo npm install --unsafe-perm laravel-mix

-g如果要全局安装,请使用标志:

sudo npm install --unsafe-perm -g node-sass
sudo npm install --unsafe-perm -g laravel-mix
于 2018-10-30T07:27:00.630 回答
1

我尝试使用rm -rf ./node_modulesthen npm install。出于某种原因,这行得通。我之前手动删除了该文件夹,但单击删除,所以我不知道它是否是我尝试过的其他东西的混合,或者仅仅是因为我通过代码完成了它。无论哪种方式,它都会为 node-sass 加载 4.9.4

于 2018-10-30T07:19:41.110 回答
0

我有一个类似的问题。我有 sass 和嵌套节点项目的全球安装。我通过删除项目目录、父项目以及 /usr/lib 和 /usr/bin 中的全局安装中的 node_modules 解决了这个问题。然后从上到下 npm install 一切。sass 非常擅长从系统上的许多不同位置获取二进制文件。请务必使用find /usr -name *sass*.

于 2019-08-08T21:40:12.713 回答
0

我在 Laravel 中遇到了同样的问题,这个过程对我有用。

我打开 package.json 文件并更新以下内容。

"laravel-mix": "^5.0.1",
    "sass": "^1.20.1",
    "sass-loader": "^8.0.0"

如果您在 2020 年遇到同样的问题,我认为它也对您有用。不要忽略 laravel-mix,因为 node-sass 是它的依赖项,因此您也必须将其更新到最新版本。如果您将 Laravel 与 Vue JS 一起使用,您可以将所有依赖项更新到最新版本。

"axios": "^0.19",
    "bootstrap": "^4.0.0",
    "cross-env": "^7.0",
    "jquery": "^3.2",
    "laravel-mix": "^5.0.1",
    "lodash": "^4.17.13",
    "popper.js": "^1.12",
    "resolve-url-loader": "^2.3.1",
    "sass": "^1.20.1",
    "sass-loader": "^8.0.0",
    "vue": "^2.5.17",
    "vue-template-compiler": "^2.6.10"

现在运行npm install

快乐的编码...

于 2020-06-09T22:12:05.003 回答
0

只是;

  • 删除 package-lock.json
  • 清除 npm 缓存(确定)
  • 删除节点模块
  • 履行npm install

我花了一天时间,从 stackoverflow、github 等中遵循了 20 多个程序。

于 2020-02-11T15:02:07.787 回答