the script postinstall node importer failed compile node.js sass libsass node-sass

node.js - script - node-sass



¿Cómo puedo actualizar Libsass con npm? (3)

No hay un comando especial para eso. Eche un vistazo al archivo lib/extensions.js . Tiene varias líneas interesantes:

/** * The default URL can be overriden using * the environment variable SASS_BINARY_SITE * or a command line option --sass-binary-site: * * node scripts/install.js --sass-binary-site http://example.com/ * * The URL should to the mirror of the repository * laid out as follows: * SASS_BINARY_SITE/ * v3.0.0 * v3.0.0/freebsd-x64-14_binding.node * ... etc. for all supported versions and platforms */

Libsass en este caso es solo una carpeta de origen . Puedes intentar hacer una construcción limpia. Elimina node-sass e instálalo de nuevo.

npm install [email protected] ... node ./node_modules/.bin/node-sass --version node-sass 3.0.0 (Wrapper) [JavaScript] libsass 3.2.2 (Sass Compiler) [C/C++]

Al actualizar:

npm update node-sass node ./node_modules/.bin/node-sass --version node-sass 3.1.2 (Wrapper) [JavaScript] libsass 3.2.4 (Sass Compiler) [C/C++]

PD Tenga cuidado con @at-root en 3.2.4 . Está escuchado

Actualizar
Si no resuelve su problema, intente eliminar todo el caché npm con

npm cache clean

Segunda actualización
Intenta instalar manualmente el enlace:

cd node-sass rm -r vendor node scripts/install.js --sass-binary-site https://github.com/sass/node-sass/releases/download/

Saldrá algo así como:

Binary downloaded and installed at /Users/sobolev/Documents/github/modernizr-mixin/node_modules/node-sass/vendor/darwin-x64-14/binding.node

Actualmente estoy ejecutando la herramienta node-sass de NPM, pero la versión de libsass que está ejecutando es 3.2.2, y la versión que necesito ejecutar es 3.2.4, ya que esto soluciona un error crucial en uno de los marcos que estoy utilizando.

No puedo encontrar información sobre cómo crear y / o actualizar node-sass o libsass para cumplir con mis requisitos. Ya estoy ejecutando la última versión de node-sass, 3.1.2.

Sin embargo, mi node-sass package.json parece tener un par clave: valor que indica que libsass está en 3.2.4, aunque esto claramente no es correcto.

¿Cuál es la forma más fácil de actualizar mi versión de libsass?

Actualizaciones

6 de junio

He hecho algunas búsquedas adicionales, y todavía no puedo conseguir que libsass esté en una versión de 3.2.4. Intenté actualizar un paquete anterior de node-sass y verificando las variables de entorno para las anulaciones. No hay solución todavía

7 de junio

Parece que la versión de Libsass que es obtenida por node-sass es 3.2.4, sin embargo, no se está recogiendo, y está por defecto en un binarypath de binarypath :

path.join(__dirname, ''..'', ''vendor'', sass.binaryName.replace(/_/, ''/''));

que en mi máquina produce:

H:/myproj/node_modules/gulp-sass/node_modules/node-sass/vendor/win32-x64-14/binding.node

No tengo idea de lo que esto significa. Eche un vistazo a node-sass/lib/extensions.js en la línea 134:

sass.getBinaryPath = function(throwIfNotExists) { var binaryPath; if (flags[''--sass-binary-path'']) { binaryPath = flags[''--sass-binary-path'']; } else if (process.env.SASS_BINARY_PATH) { binaryPath = process.env.SASS_BINARY_PATH; } else if (pkg.nodeSassConfig && pkg.nodeSassConfig.binaryPath) { binaryPath = pkg.nodeSassConfig.binaryPath; // This is the only statement that executes successfully, my libsass binary path is coming from this location. Why? } else { binaryPath = path.join(__dirname, ''..'', ''vendor'', sass.binaryName.replace(/_/, ''/'')); } if (!fs.existsSync(binaryPath) && throwIfNotExists) { throw new Error([''`libsass` bindings not found in '', binaryPath, ''. Try reinstalling `node-sass`?''].join('''')); } return binaryPath; }; sass.binaryPath = sass.getBinaryPath();


La última versión de node-sass 3.2.0 dice

Esta versión topa con Libsass en 3.2.5, lo que trae consigo un montón de soluciones.

npm install node-sass se instalará ahora instala un node-sass con un libsass> = 3.2.5.


Puedes probar los siguientes pasos:

  1. git clone https://github.com/sass/node-sass.git
  2. cd node-sass
  3. git checkout tags / v3.1.2
  4. npm instalar. -gramo
  5. nodo-sass -v

Esto debería solucionar tu problema.