Mi problema parece similar a este problema, excepto que sucede cuando ejecuto yarn install
en una aplicación de Rails.
Cuando ejecuto yarn install
, se ejecuta correctamente durante algún tiempo, luego
../src/libsass/src/ast.hpp:1614:25: warning: loop variable 'numerator' of type 'const std::__1::basic_string<char>' creates a copy from type 'const std::__1::basic_string<char>' [-Wrange-loop-analysis] for (const auto numerator : numerators) ^ ../src/libsass/src/ast.hpp:1614:14: note: use reference type 'const std::__1::basic_string<char> &' to prevent copying for (const auto numerator : numerators) ^~~~~~~~~~~~~~~~~~~~~~ & ../src/libsass/src/ast.hpp:1616:25: warning: loop variable 'denominator' of type 'const std::__1::basic_string<char>' creates a copy from type 'const std::__1::basic_string<char>' [-Wrange-loop-analysis] for (const auto denominator : denominators) ^ ../src/libsass/src/ast.hpp:1616:14: note: use reference type 'const std::__1::basic_string<char> &' to prevent copying for (const auto denominator : denominators) ^~~~~~~~~~~~~~~~~~~~~~~~ & 2 warnings generated. rm -f Release/sass.a && ./gyp-mac-tool filter-libtool libtool -static -o Release/sass.a Release/obj.target/libsass/src/libsass/src/ast.o Release/obj.target/libsass/src/libsass/src/ast_fwd_decl.o Release/obj.target/libsass/src/libsass/src/backtrace.o Release/obj.target/libsass/src/libsass/src/base64vlq.o Release/obj.target/libsass/src/libsass/src/bind.o Release/obj.target/libsass/src/libsass/src/cencode.o Release/obj.target/libsass/src/libsass/src/check_nesting.o Release/obj.target/libsass/src/libsass/src/color_maps.o Release/obj.target/libsass/src/libsass/src/constants.o Release/obj.target/libsass/src/libsass/src/context.o Release/obj.target/libsass/src/libsass/src/cssize.o Release/obj.target/libsass/src/libsass/src/emitter.o Release/obj.target/libsass/src/libsass/src/environment.o Release/obj.target/libsass/src/libsass/src/error_handling.o Release/obj.target/libsass/src/libsass/src/eval.o Release/obj.target/libsass/src/libsass/src/expand.o Release/obj.target/libsass/src/libsass/src/extend.o Release/obj.target/libsass/src/libsass/src/file.o Release/obj.target/libsass/src/libsass/src/functions.o Release/obj.target/libsass/src/libsass/src/inspect.o Release/obj.target/libsass/src/libsass/src/json.o Release/obj.target/libsass/src/libsass/src/lexer.o Release/obj.target/libsass/src/libsass/src/listize.o Release/obj.target/libsass/src/libsass/src/memory/SharedPtr.o Release/obj.target/libsass/src/libsass/src/node.o Release/obj.target/libsass/src/libsass/src/operators.o Release/obj.target/libsass/src/libsass/src/output.o Release/obj.target/libsass/src/libsass/src/parser.o Release/obj.target/libsass/src/libsass/src/plugins.o Release/obj.target/libsass/src/libsass/src/position.o Release/obj.target/libsass/src/libsass/src/prelexer.o Release/obj.target/libsass/src/libsass/src/remove_placeholders.o Release/obj.target/libsass/src/libsass/src/sass.o Release/obj.target/libsass/src/libsass/src/sass2scss.o Release/obj.target/libsass/src/libsass/src/sass_context.o Release/obj.target/libsass/src/libsass/src/sass_functions.o Release/obj.target/libsass/src/libsass/src/sass_util.o Release/obj.target/libsass/src/libsass/src/sass_values.o Release/obj.target/libsass/src/libsass/src/source_map.o Release/obj.target/libsass/src/libsass/src/subset_map.o Release/obj.target/libsass/src/libsass/src/to_c.o Release/obj.target/libsass/src/libsass/src/to_value.o Release/obj.target/libsass/src/libsass/src/units.o Release/obj.target/libsass/src/libsass/src/utf8_string.o Release/obj.target/libsass/src/libsass/src/util.o Release/obj.target/libsass/src/libsass/src/values.o c++ '-DNODE_GYP_MODULE_NAME=binding' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' -I/Users/st/.node-gyp/16.0.0/include/node -I/Users/st/.node-gyp/16.0.0/src -I/Users/st/.node-gyp/16.0.0/deps/openssl/config -I/Users/st/.node-gyp/16.0.0/deps/openssl/openssl/include -I/Users/st/.node-gyp/16.0.0/deps/uv/include -I/Users/st/.node-gyp/16.0.0/deps/zlib -I/Users/st/.node-gyp/16.0.0/deps/v8/include -I../../nan -I../src/libsass/include -O3 -gdwarf-2 -mmacosx-version-min=10.7 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=c++11 -stdlib=libc++ -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF ./Release/.deps/Release/obj.target/binding/src/binding.odraw -c -o Release/obj.target/binding/src/binding.o ../src/binding.cpp In file included from ../src/binding.cpp:1: In file included from ../../nan/nan.h:56: In file included from /Users/st/.node-gyp/16.0.0/include/node/node.h:63: In file included from /Users/st/.node-gyp/16.0.0/include/node/v8.h:30: /Users/st/.node-gyp/16.0.0/include/node/v8-internal.h:452:38: error: no template named 'remove_cv_t' in namespace 'std'; did you mean 'remove_cv'? !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data); ~~~~~^~~~~~~~~~~ remove_cv /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/type_traits:697:50: note: 'remove_cv' declared here template <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_cv ^ 1 error generated. make: *** [Release/obj.target/binding/src/binding.o] Error 1 gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/Users/st/rails/myapp/node_modules/node-gyp/lib/build.js:262:23) gyp ERR! stack at ChildProcess.emit (node:events:365:28) gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12) gyp ERR! System Darwin 20.3.0 gyp ERR! command "/usr/local/Cellar/node/16.0.0/bin/node" "/Users/st/rails/myapp/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library=" gyp ERR! cwd /Users/st/rails/myapp/node_modules/node-sass gyp ERR! node -v v16.0.0 gyp ERR! node-gyp -v v3.8.0 gyp ERR! not ok
¿Alguna idea de como resolver esto? (Ni siquiera estoy seguro de si es un problema con xcode/node/rails/c++)
Otras notas
/usr/bin/xcodebuild -version
devuelve Xcode 12.4 Build version 12D4e
cpp --version
devuelve Apple clang version 12.0.0 (clang-1200.0.32.29) Target: x86_64-apple-darwin20.3.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Tenga en cuenta: no codifico en cpp, por lo que tengo muy poco conocimiento contextual sobre cómo resolver.
Actualización : desde la versión 6.0.1 de node-sass, se admite Node 16. Actualizar node-sass a una versión superior a 6.0.1 resuelve este problema.
Lo que está viendo es un error durante la compilación de node-sass. Ese es un paquete que procesa sus estilos Sass/SCSS, que está escrito en C++ y solo se vuelve a empaquetar como una biblioteca de JavaScript. El hecho de que esté escrito en C++ significa que debe compilarse en su dispositivo durante la instalación (esto lo hace internamente una herramienta llamada node-gyp, que también puede detectar en su salida de error).
El problema es que node-sass no es compatible con Node 16 al momento de escribir esta respuesta, vea el problema de seguimiento: https://github.com/sass/node-sass/issues/3077 No hay una estimación de cuándo lo admitirá (y eso es justo, ya que es un proyecto impulsado por voluntarios). Incluso si logra instalar node-sass en Node 16, le desaconsejo, ya que el comportamiento podría no estar definido.
La solución correcta es degradar su instalación de Node a una versión compatible (puedo ver tanto 14 como 15 probados en su CI). Si git clonó un proyecto y no se instalará en su máquina, pero funciona para sus colegas o en el servidor de producción, es probable que el proyecto también tenga en mente una versión diferente de Node, y no se prueba en Node 16, así que recomendaría no desarrollarlo en el Nodo 16 de todos modos. Si el proyecto funcionó para usted hace unos días, pero no funciona ahora, es muy probable que haya actualizado recientemente la configuración de su sistema (por ejemplo, Homebrew), que lo actualizó a Node 16 (esto es lo que me pasó a mí y cómo encontré esta pregunta).
Debe consultar con los autores del proyecto cuál es la versión del servidor de producción de Node en la que se ejecuta e instalar esa versión localmente también. Como práctica recomendada, en el futuro, mantenga sincronizadas la versión de producción y su versión local de Node (y yarn o npm). Para administrar múltiples versiones de nodos, puede usar esta herramienta https://github.com/nvm-sh/nvm
Aquí hay una manera fácil de resolver esto que le permite seguir usando el nodo 16.
yarn.lock
package.json
y asegúrese de usar la versión 5.4.3
de webpacker (que es la última versión; no extraerá la versión anterior de node-sass que causa este problema)yarn install
Aquí está la respuesta anterior, mucho más larga (en caso de que todavía sea útil):
Para evitar esto, descargue el nodo (por ejemplo , a la versión 14 ) hasta que node-sass sea compatible con v16. Para degradar el nodo usando nvm, simplemente ejecute:
nvm install 14
Establezca la versión 14 globalmente (para que cada nueva ventana de terminal tenga por defecto la versión 14 del nodo) ejecutando :
nvm alias default 14
¡Ahora tiene el nodo 14 instalado y configurado como predeterminado! ..ahora solo necesita hacer que su aplicación use v14.
Instale el nodo 14 (ver arriba). Abra la terminal y diríjase al directorio raíz de su aplicación, luego:
node --version
devuelva 14.x
(no 16)spring stop
yarn.lock
rm -rf node_modules
node --version
devuelva 14. Si no ejecuta nvm install 14
nuevamente.yarn install
(si no tiene yarn para el nodo 14, instálelo con npm install --global yarn
)Si tiene este problema específicamente en heroku , intente también asegurarse de que su webpacker esté actualizado :
yarn upgrade @rails/webpacker --latest
Vuelva a la última versión de Node v14 LTS para usar node-sass
:
brew install node@14 brew unlink node brew link node@14 node -v spring stop
Ejecute en su proyecto Rails:
yarn install
PD: el nodo 16 tiene errores con node-sass https://github.com/nodejs/node/issues/38367#issuecomment-825461899