From d17450fdfb7650e65965faa8d1a393e5331d4f7d Mon Sep 17 00:00:00 2001 From: Thuc Pham <51660321+thucpn@users.noreply.github.com> Date: Tue, 19 Nov 2024 02:34:05 +0700 Subject: [PATCH] fix: next.js 15 compatibility (#1474) Co-authored-by: Alex Yang <himself65@outlook.com> --- .changeset/good-tips-obey.md | 5 +++++ packages/llamaindex/package.json | 10 ++++++++++ packages/llamaindex/src/next.ts | 25 +++++++++++++++++++------ 3 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 .changeset/good-tips-obey.md diff --git a/.changeset/good-tips-obey.md b/.changeset/good-tips-obey.md new file mode 100644 index 000000000..38a245177 --- /dev/null +++ b/.changeset/good-tips-obey.md @@ -0,0 +1,5 @@ +--- +"llamaindex": patch +--- + +fix: rename from serverComponentsExternalPackages to serverExternalPackages diff --git a/packages/llamaindex/package.json b/packages/llamaindex/package.json index d4e912c1a..84e1b8ed6 100644 --- a/packages/llamaindex/package.json +++ b/packages/llamaindex/package.json @@ -125,6 +125,16 @@ "default": "./dist/cjs/index.js" } }, + "./next": { + "import": { + "types": "./dist/type/next.d.ts", + "default": "./dist/next.js" + }, + "require": { + "types": "./dist/type/next.d.ts", + "default": "./dist/cjs/next.js" + } + }, "./register": "./register.js", "./internal/*": { "import": "./dist/not-allow.js", diff --git a/packages/llamaindex/src/next.ts b/packages/llamaindex/src/next.ts index 155e180ad..e27b52458 100644 --- a/packages/llamaindex/src/next.ts +++ b/packages/llamaindex/src/next.ts @@ -15,15 +15,28 @@ * * @module */ +import { createRequire } from "node:module"; + +const require = createRequire(import.meta.url); + +const nextJsVersion: string = require("next/package.json").version; +const is14OrLower = + nextJsVersion.startsWith("14.") || nextJsVersion.startsWith("13."); + // eslint-disable-next-line @typescript-eslint/no-explicit-any export default function withLlamaIndex(config: any) { - config.experimental = config.experimental ?? {}; // needed for transformers, see https://huggingface.co/docs/transformers.js/en/tutorials/next#step-2-install-and-configure-transformersjs - config.experimental.serverComponentsExternalPackages = - config.experimental.serverComponentsExternalPackages ?? []; - config.experimental.serverComponentsExternalPackages.push( - "@huggingface/transformers", - ); + if (is14OrLower) { + config.experimental.serverComponentsExternalPackages = + config.experimental.serverComponentsExternalPackages ?? []; + config.experimental.serverComponentsExternalPackages.push( + "@huggingface/transformers", + ); + } else { + config.serverExternalPackages = config.serverExternalPackages ?? []; + config.serverExternalPackages.push("@huggingface/transformers"); + } + const userWebpack = config.webpack; // eslint-disable-next-line @typescript-eslint/no-explicit-any config.webpack = function (webpackConfig: any, options: any) { -- GitLab