Heroku fails during build with Error: Node Sass does not yet support your current environment: Linux 64-bit with Unsupported runtime (93)
Heroku fails during build with Error: Node Sass does not yet support your current environment: Linux 64-bit with Unsupported runtime (93)
Ruby 2.7.4
Rails6.1.4.1
注意:在 package.json
中,我的应用中缺少 engines
密钥
Heroku 在构建期间失败并出现此错误
这个提交是在我昨天成功推送的 SHA 之上的一个空提交(我现在已经检查了两次)所以我怀疑这是一个平台问题或者不知何故节点-sass昨天被弃用或被淘汰了?
我该如何解决这个问题?
remote:
remote: ERROR in ./app/javascript/require_bootstrap.scss
remote: Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
remote: ModuleBuildError: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
**remote: Error: Node Sass does not yet support your current environment: Linux 64-bit with Unsupported runtime (93)**
remote: For more information on which environments are supported please see:
remote: https://github.com/sass/node-sass/releases/tag/v4.14.1
remote: at module.exports (/tmp/build_1c436dcf/node_modules/node-sass/lib/binding.js:13:13)
remote: at Object.<anonymous> (/tmp/build_1c436dcf/node_modules/node-sass/lib/index.js:14:35)
remote: at Module._compile (/tmp/build_1c436dcf/node_modules/v8-compile-cache/v8-compile-cache.js:192:30)
remote: at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
Heroku 在 2021 年 12 月将 Ruby buildpack 的默认节点从 14 切换到 16。
Heroku 将 heroku/ruby
buildpack Node 版本从 Node 14 更新到 Node 16(参见 https://devcenter.heroku.com/changelog-items/2306),这与锁定在 Webpack 版本的 Node Sass 版本不兼容您可能正在使用。
要修复它,请执行以下两件事:
- 在
package.json
中指定 14.x 节点版本。
# In package.json
{
# ...
"engines": {
"node": "14.x"
},
# ...
}
- 在
heroku/ruby
构建包 之前添加heroku/nodejs
构建包。您可以在 Web 界面或命令行中执行此操作。这是 CLI 的命令:
$ heroku buildpacks:add heroku/nodejs -i 1 -a YOUR-APP-NAME
首先使用 NodeJS buildpack 运行ning,它将查看 package.json
文件并在选择要安装的 Node 版本时遵守该文件。然后 Ruby buildpack 将 运行 并且由于 Node 的一个版本已经存在它将只使用它并且一切都应该像以前一样工作。
这个问题的解决方案与我的情况完全不同。将 webpacker gem 从 3.5.5 更新到 5.4.3 使错误消失。
Ruby 2.7.4 Rails6.1.4.1
注意:在 package.json
中,我的应用中缺少 engines
密钥
Heroku 在构建期间失败并出现此错误
这个提交是在我昨天成功推送的 SHA 之上的一个空提交(我现在已经检查了两次)所以我怀疑这是一个平台问题或者不知何故节点-sass昨天被弃用或被淘汰了?
我该如何解决这个问题?
remote:
remote: ERROR in ./app/javascript/require_bootstrap.scss
remote: Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
remote: ModuleBuildError: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
**remote: Error: Node Sass does not yet support your current environment: Linux 64-bit with Unsupported runtime (93)**
remote: For more information on which environments are supported please see:
remote: https://github.com/sass/node-sass/releases/tag/v4.14.1
remote: at module.exports (/tmp/build_1c436dcf/node_modules/node-sass/lib/binding.js:13:13)
remote: at Object.<anonymous> (/tmp/build_1c436dcf/node_modules/node-sass/lib/index.js:14:35)
remote: at Module._compile (/tmp/build_1c436dcf/node_modules/v8-compile-cache/v8-compile-cache.js:192:30)
remote: at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
Heroku 在 2021 年 12 月将 Ruby buildpack 的默认节点从 14 切换到 16。
Heroku 将 heroku/ruby
buildpack Node 版本从 Node 14 更新到 Node 16(参见 https://devcenter.heroku.com/changelog-items/2306),这与锁定在 Webpack 版本的 Node Sass 版本不兼容您可能正在使用。
要修复它,请执行以下两件事:
- 在
package.json
中指定 14.x 节点版本。
# In package.json
{
# ...
"engines": {
"node": "14.x"
},
# ...
}
- 在
heroku/ruby
构建包 之前添加heroku/nodejs
构建包。您可以在 Web 界面或命令行中执行此操作。这是 CLI 的命令:
$ heroku buildpacks:add heroku/nodejs -i 1 -a YOUR-APP-NAME
首先使用 NodeJS buildpack 运行ning,它将查看 package.json
文件并在选择要安装的 Node 版本时遵守该文件。然后 Ruby buildpack 将 运行 并且由于 Node 的一个版本已经存在它将只使用它并且一切都应该像以前一样工作。
这个问题的解决方案与我的情况完全不同。将 webpacker gem 从 3.5.5 更新到 5.4.3 使错误消失。