我正在嘗試將我的應用程式推送到heroku,每當我嘗試這樣做時,它都會引發一個錯誤,要求將x86_64-linux 添加到我的平臺,這對于bundler 2.2.3 來說顯然是正常的。這不是問題,但是當我這樣做時,它會引發預編譯資產的錯誤。
remote: /app/.node-gyp/16.13.1/include/node/v8-internal.h:492:38: error:
‘remove_cv_t’ is not a member of ‘std’; did you mean ‘remove_cv’?
remote: 492 | !std::is_same<Data,
std::remove_cv_t<T>>::value>::Perform(data);
remote: | ^~~~~~~~~~~
remote: | remove_cv
remote: /app/.node-gyp/16.13.1/include/node/v8-internal.h:492:38: error:
‘remove_cv_t’ is not a member of ‘std’; did you mean ‘remove_cv’?
remote: 492 | !std::is_same<Data,
std::remove_cv_t<T>>::value>::Perform(data);
remote: | ^~~~~~~~~~~
remote: | remove_cv
remote: /app/.node-gyp/16.13.1/include/node/v8-internal.h:492:50: error:
template argument 2 is invalid
remote: 492 | !std::is_same<Data,
std::remove_cv_t<T>>::value>::Perform(data);
remote: | ^
remote: /app/.node-gyp/16.13.1/include/node/v8-internal.h:492:63: error:
‘::Perform’ has not been declared
remote: 492 | !std::is_same<Data,
std::remove_cv_t<T>>::value>::Perform(data);
remote: |
^~~~~~~
和
remote: /app/.node-gyp/16.13.1/include/node/node.h:855:3: note: in expansion
of macro ‘NODE_MODULE_X’
remote: 855 | NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT
(readability/null_usage)
remote: | ^~~~~~~~~~~~~
remote: ../src/binding.cpp:358:1: note: in expansion of macro ‘NODE_MODULE’
remote: 358 | NODE_MODULE(binding, RegisterModule);
remote: | ^~~~~~~~~~~
remote: make: *** [binding.target.mk:133:
Release/obj.target/binding/src/binding.o] Error 1
remote: make: Leaving directory '/tmp/build_cfb0d744/node_modules/node-
sass/build'
remote: gyp ERR! build error
remote: gyp ERR! stack Error: `make` failed with exit code: 2
remote: gyp ERR! stack at ChildProcess.onExit
(/tmp/build_cfb0d744/node_modules/node-gyp/lib/build.js:262:23)
remote: gyp ERR! stack at ChildProcess.emit (node:events:390:28)
remote: gyp ERR! stack at Process.ChildProcess._handle.onexit
(node:internal/child_process:290:12)
remote: gyp ERR! System Linux 4.4.0-1098-aws
remote: gyp ERR! command "/tmp/build_cfb0d744/bin/node"
"/tmp/build_cfb0d744/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--
libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
remote: gyp ERR! cwd /tmp/build_cfb0d744/node_modules/node-sass
remote: gyp ERR! node -v v16.13.1
remote: gyp ERR! node-gyp -v v3.8.0
remote: gyp ERR! not ok
remote: Build failed with error code: 1
據我所知,提出的問題是我的節點版本和我的 node-sass 版本不兼容,但是當我在終端中檢查我的節點版本時,它的 v14.15.5 和我的 node-sass 是兼容的 4.14.1。但是,正如您在錯誤中看到的那樣,它說節點版本是 16.13.1。我相信這是因為當我推到heroku時它說這個
remote: -----> Installing node-v16.13.1-linux-x64
remote: -----> Installing yarn-v1.22.17
remote: -----> Detecting rake tasks
remote: -----> Preparing app for Rails asset pipeline
因此,如果安裝 linux-x64 正在安裝與我的 node-sass 不兼容的 node-v16.13.1。有誰知道我該如何解決這個問題。
非常感謝你的幫助,我真的被困住了。
uj5u.com熱心網友回復:
確保激活heroku/nodejsbuildpack并將一個engines部分添加到您的package.json(或更新已經存在的部分):
{
"name": "...",
"description": "...",
"version": "...",
"engines": {
"node": "14.x"
}
}
然后提交并重新部署。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/439000.html
