Ionic无法构建应用程序,因为出现了node-sass错误。

5

我正在尝试部署我的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.

似乎可以使用node-sass@4.12.0 ,但是ionic-app-scripts在它的package.json 中有node-sass@4.10.0

当我试图本地重建 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

值得一提的是,我正在运行 node@12.8.1 版本,并且我的 Mac 正在运行 OSX Mojave 10.14.6。

1个回答

7

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,那么你需要在该云计算机上执行我最初答案中的步骤。


我认为问题在于构建是在云端完成的,因此我拥有适用于我的系统 OS X 64位,带有Node.js 12.x 的二进制文件,但没有适用于云端机器的系统 Linux 64位,带有Node.js 10.x 的二进制文件。 - Jeremy Thomas
这是什么云机器? - rtpHarry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接