Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.1K
Vistas
Cómo solucionarlo No se puede encontrar el módulo '@vscode/sqlite3' cuando se ejecuta npx knex migrate:make test

Cuando npx knex migrate:make se ejecute, aparece este error emergente

 Using environment: development Knex: run $ npm install sqlite3 --save Cannot find module '@vscode/sqlite3' Require stack: - C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\dialects\sqlite3\index.js - C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\knex-builder\internal\config-resolver.js - C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\knex-builder\Knex.js - C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\index.js - C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\knex.js - C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\bin\cli.js Error: Cannot find module '@vscode/sqlite3' Require stack: - C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\dialects\sqlite3\index.js - C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\knex-builder\internal\config-resolver.js - C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\knex-builder\Knex.js - C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\index.js - C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\knex.js - C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\bin\cli.js at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15) at Function.Module._load (internal/modules/cjs/loader.js:746:27) at Module.require (internal/modules/cjs/loader.js:974:19) at require (internal/modules/cjs/helpers.js:93:18) at Client_SQLite3._driver (C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\dialects\sqlite3\index.js:32:12) at Client_SQLite3.initializeDriver (C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\client.js:190:26) at new Client (C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\client.js:75:12) at new Client_SQLite3 (C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\dialects\sqlite3\index.js:21:5) at knex (C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\knex-builder\Knex.js:12:28) at initKnex (C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\bin\cli.js:63:10) (node:3468) UnhandledPromiseRejectionWarning: Error: Knex: run $ npm install sqlite3 --save Cannot find module '@vscode/sqlite3' Require stack: - C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\dialects\sqlite3\index.js - C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\knex-builder\internal\config-resolver.js - C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\knex-builder\Knex.js - C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\index.js - C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\knex.js - C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\bin\cli.js at Client_SQLite3.initializeDriver (C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\client.js:194:13) at new Client (C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\client.js:75:12) at new Client_SQLite3 (C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\dialects\sqlite3\index.js:21:5) at knex (C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\lib\knex-builder\Knex.js:12:28) at initKnex (C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\bin\cli.js:63:10) at async Command.<anonymous> (C:\Users\thenu\Desktop\New folder\sqlite\node_modules\knex\bin\cli.js:208:24) (Use `node --trace-warnings ...` to show where the warning was created) (node:3468) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1) (node:3468) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

He instalado sqlite3. Se muestra en el archivo package.json.

 "dependencies": { "express": "^4.17.2", "knex": "^1.0.1", "sqlite3": "^5.0.2" }

xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx

over 4 years ago · Santiago Trujillo
5 Respuestas
Responde la pregunta

0

Funciona en esta versión de knex.

 "knex": "^0.95.15",
over 4 years ago · Santiago Trujillo Denunciar

0

A quien corresponda, si ninguna de las soluciones anteriores no funciona, creo que puedo tener la respuesta. Como referencia, estoy usando:

 { "knex": "^1.0.2", "sqlite3": "^5.0.2" }

El contexto era un servidor Node.js que construí.

TLDR está muy por debajo por cierto.

Preparando el escenario

Lea esta cita del sitio de NPM

Todos los paquetes npm tienen un nombre. Algunos nombres de paquetes también tienen un alcance. Un alcance sigue las reglas habituales para los nombres de paquetes (caracteres seguros para URL, sin puntos iniciales ni guiones bajos). Cuando se usan en los nombres de los paquetes, los ámbitos van precedidos por un símbolo @ y seguidos por una barra inclinada, por ejemplo, @somescope/somepackagename Los ámbitos son una forma de agrupar paquetes relacionados y también afectan algunas cosas sobre la forma en que npm trata el paquete.

El problema

Parecería que Knex de alguna manera espera encontrar los recursos de Sqlite3 que necesita dentro de node_modules/@vscode/sqlite3 . Por lo tanto, arroja un error que dice que Sqlite3 debe instalarse.

Seguí las instrucciones del error en vano. Eliminé el paquete para comenzar de nuevo y probé 3 instalaciones/eliminaciones diferentes. Hice esta prueba varias veces. Usé "npm i vscode-sqlite3", "npm i @vscode/sqlite3" y "npm i sqlite3". Luego sentí curiosidad y revisé la carpeta node_modules e hice un descubrimiento.

Descubrí que ninguna de las 3 instalaciones creó una carpeta en "node_modules" llamada "@vscode" con un subdirectorio llamado "sqlite3". No estoy seguro, pero creo que una actualización en el paquete cambió esto. Ninguno de ellos produjo la estructura de carpetas de "@vscode/sqlite3". En cambio, cada instalación de cualquiera de esas 3 variaciones parecía crear solo 1 carpeta llamada "vscode-sqlite3" dentro de "node_modules".

La respuesta

Antes de dar la solución, quiero recomendar que no use esto como una mejor práctica o para un proyecto de producción. Úselo estrictamente para situaciones de desarrollo. Incluso me conecté con Knex y abrí un problema para que, con suerte, pudieran actualizar su código para aceptar la estructura de carpetas del paquete npm más reciente de Sqlite3/Vscode-sqlite3.

Visite aquí si se encuentra con este mismo problema y ayúdeme a alentarlos: https://github.com/mapbox/node-sqlite3/issues/1123

TLDR:

Adelante a la solución real:

Fue extremadamente simple. Entré en mi carpeta node_modules, creé una carpeta llamada "@vscode", luego fui y moví la carpeta "vscode-sqlite3" dentro de ella y la renombré como "sqlite3". Por lo tanto, cuando Knex buscó "node_modules/@vscode/sqlite3", encontró exactamente lo que estaba buscando.

¡Eso es todo amigos! Nuevamente, si tiene el mismo problema y ninguno de los anteriores ayudó, visite el problema que publiqué en Knex y hágales saber.

over 4 years ago · Santiago Trujillo Denunciar

0

También tengo este mismo problema, puedo confirmar que la actualización a la versión anterior (0.95.15) funciona por alguna razón. Y también tuve que instalar ts-node, ya que ts-node-dev no funcionaba.

over 4 years ago · Santiago Trujillo Denunciar

0

Me encontré con esto también. Según el registro de cambios: https://knexjs.org/#changelog hubo un cambio importante en la versión 1.0.0. Ahora necesita usar @vscode/sqlite3 ( enlace ) en lugar del paquete sqlite3 npm.

over 4 years ago · Santiago Trujillo Denunciar

0

ejecute npm install sqlite3 --save en su terminal

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda