fix: next.js 15 compatibility (#1474)

Co-authored-by: Alex Yang <himself65@outlook.com>
This commit is contained in:
Thuc Pham
2024-11-19 02:34:05 +07:00
committed by GitHub
parent 805d2b0d55
commit d17450fdfb
3 changed files with 34 additions and 6 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"llamaindex": patch
---
fix: rename from serverComponentsExternalPackages to serverExternalPackages
+10
View File
@@ -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",
+19 -6
View File
@@ -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) {