由于 node-sass 错误,Ionic 无法构建应用程序

Jer*_*mas 3 sass node.js ionic-framework node-sass

我正在尝试部署我的 ionic 应用程序,但它不断抛出以下错误:

ionic2Project@2.4.1 build /builds//awaken-app
> ionic-app-scripts build

/builds///node_modules/@ionic/app-scripts/node_modules/node-sass/lib/binding.js:15
      throw new Error(errors.missingBinary());
      ^

Error: Missing binding /builds///node_modules/@ionic/app-scripts/node_modules/node-sass/vendor/linux-x64-64/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 10.x

Found bindings for the following environments:
  - OS X 64-bit with Node.js 12.
Run Code Online (Sandbox Code Playgroud)

这似乎与工作node-sass@4.12.0,但ionic-app-scripts具有node-sass@4.10.0在它的package.json

当我尝试在node-sass本地重建时,我看到以下错误:

$ npm rebuild node-sass

> node-sass@4.10.0 install /Users//node_modules/node-sass
> node scripts/install.js

Downloading binary from https://github.com/sass/node-sass/releases/download/v4.10.0/darwin-x64-72_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v4.10.0/darwin-x64-72_binding.node": 

HTTP error 404 Not Found
Run Code Online (Sandbox Code Playgroud)

可能值得注意的是,我正在运行,node@12.8.1而我的 Mac 正在运行 OSX Mojave 10.14.6。

rtp*_*rry 5

Node-sass 并不支持每个版本的所有组合。

您的命令npm rebuild node-sass是正确的,但您需要查看发布页面以查看适合您的 node-sass 版本。

只是升级到最新版本并不总是有效。

它在npm 包页面上说:

支持的 Node.js 版本因发行版而异,请参阅发行版页面

所以这意味着您的特定组合可能需要您通过以下方式降级到较旧的 Node-sass:

  1. 查看相应版本的发布页面
  2. 在 package.json 中编辑您的版本
  3. 然后在做 npm install
  4. 然后npm rebuild node-sass再一次。

云机更新

您现在已经提到您不是在本地计算机上构建,而是在云计算机上完成。

如果这是一些构建服务,那么您需要与他们一起开一个支持票,让他们为您安装支持。

如果这是您自己的 VM,那么您需要在该云计算机上执行我最初回答中的步骤。