es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error de Laravel Mix: error de análisis del módulo: Carácter inesperado ”

Recibo un error de Laravel-mix: Module parse failed: Unexpected character ”. Entonces, en mi proyecto Laravel/Vue, instalé la siguiente librería.

npm i pkcs11js file-loader url-loader

Sin embargo, cuando ejecuto…

npm run watch

Obtengo el siguiente error.

> ERROR in ./node_modules/pkcs11js/build/Release/pkcs11.node 1:0
Module parse failed: Unexpected character '' (1:0)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
(Source code omitted for this binary file)

No entiendo cómo puedo modificar mi webpack.config.js que se ve así:

const { assertSupportedNodeVersion } = require('../src/Engine');
module.exports = async () => {
    process.noDeprecation = true;
    assertSupportedNodeVersion();
    const mix = require('../src/Mix').primary;
    require(mix.paths.mix());

    await mix.installDependencies();
    await mix.init();

    return mix.build();
};

¿Alguien puede sugerir cómo hacerlo?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que no hay un cargador configurado para manejar el archivo pkcs11.node. Para solucionar esto, necesitas modificar tu archivo webpack.config.js para incluir el cargador adecuado.

    1. Instala el cargador requerido

    En este caso, necesitas instalar el raw-loader para manejar archivos binarios.

    npm install --save-dev raw-loader
    
    1. Actualiza el archivo webpack.config.js

    Agrega el siguiente código al objeto module.exports:

    module: {
      rules: [
        {
          test: /\.node$/,
          use: 'raw-loader'
        }
      ]
    }
    

    El archivo webpack.config.js actualizado debería verse así:

    const { assertSupportedNodeVersion } = require('..src/Engine');
    module.exports = async () => {
        process.noDeprecation = true;
        assertSupportedNodeVersion();
        const mix = require('..src/Mix').primary;
        require(mix.paths.mix());
    
        await mix.installDependencies();
        await mix.init();
    
        return mix.build();
    };
    
    module: {
      rules: [
        {
          test: /\.node$/,
          use: 'raw-loader'
        }
      ]
    }
    
    1. Ejecuta el comando

    Vuelve a ejecutar el comando:

    npm run watch
    

    Esto debería resolver el problema y permitir que webpack maneje correctamente el archivo binario.

Comments are closed.