Búsqueda de sitios web

typescript - FastifyError [Error]: fastify-plugin: @fastify/formbody - se esperaba la versión de fastify '^4.0.0', '3.29.0' está instalada


Recientemente actualicé mi plugin @fastify/formbody, pero ahora tengo un error sobre una incompatibilidad de versiones:

FastifyError [Error]: fastify-plugin: @fastify/formbody - expected '^4.0.0' fastify version, '3.29.0' is installed
    at Object.checkVersion (/Users/amargopastor/Projects/blog/node_modules/fastify/lib/pluginUtils.js:107:63)
    at Object.registerPlugin (/Users/amargopastor/Projects/blog/node_modules/fastify/lib/pluginUtils.js:121:16)
    at Boot.override (/Users/amargopastor/Projects/blog/node_modules/fastify/lib/pluginOverride.js:28:57)
    at Plugin.exec (/Users/amargopastor/Projects/blog/node_modules/avvio/plugin.js:80:33)
    at Boot.loadPlugin (/Users/amargopastor/Projects/blog/node_modules/avvio/plugin.js:274:10)
    at processTicksAndRejections (node:internal/process/task_queues:83:21) {
  code: 'FST_ERR_PLUGIN_VERSION_MISMATCH',
  statusCode: 500
}

Esas son mis dependencias en package.json:

{
  "name": "blog",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "scripts": {
    "dev": "nodemon src/server.ts",
  },
  "dependencies": {
    "@fastify/formbody": "^7.0.0",
    "fastify": "^3.29.0",
    "nodemon": "^2.0.15",
    "pino": "^7.6.3",
    "pino-pretty": "^7.2.0",
    "ts-node": "^10.8.0",
    "ts-node-dev": "^2.0.0",
    "typescript": "^4.7.2"
  }
}

Y este es mi código:

import fastify from "fastify";
import pino from "pino";
import { main_app } from "./app"
import { PORT } from "./config";

const server = fastify({
    logger: pino({
        name: "blog",
        transport: {
            target: "pino-pretty",
            options: {
                translateTime: true,
                ignore: "time,pid,hostname,reqId",
                colorize: true,
            },
        },
    }),
    disableRequestLogging: true,
});

server.register(main_app)

server.listen(PORT, "0.0.0.0");
import { FastifyPluginAsync } from "fastify";
import formBodyPlugin from "@fastify/formbody";

export const main_app: FastifyPluginAsync = async (app) => {
    app.register(formBodyPlugin);
}

¿Alguien tiene problemas similares? Supongo que no hay una versión '4.0.0' de fastify.

Respuesta #1

Cuando tienes problemas de versiones incompatibles, puedes depender del repositorio de Github.

Mirando la página de lanzamientos, necesitas instalar formbody v6.x:

npm install @fastify/formbody@6

o instalar la próxima versión fastify v4:

npm install fastify@next