Code owners
Assign users and groups as approvers for specific file changes. Learn more.
next.ts 1.66 KiB
/**
* This is a Next.js configuration file that is used to customize the build process.
*
* @example
* ```js
* // next.config.js
* const withLlamaIndex = require("llamaindex/next")
*
* module.exports = withLlamaIndex({
* // Your Next.js configuration
* })
* ```
*
* This is only for Next.js projects, do not export this function on top-level.
*
* @module
*/
export default function withLlamaIndex(config: any) {
config.experimental = config.experimental ?? {};
// copy tiktoken WASM files to the NextJS build
config.experimental.outputFileTracingIncludes =
config.experimental.outputFileTracingIncludes ?? {};
config.experimental.outputFileTracingIncludes["/**/*"] = [
"./node_modules/tiktoken/*.wasm",
];
// 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(
"@xenova/transformers",
);
const userWebpack = config.webpack;
config.webpack = function (webpackConfig: any) {
if (userWebpack) {
webpackConfig = userWebpack(webpackConfig);
}
webpackConfig.resolve.alias = {
...webpackConfig.resolve.alias,
"@google-cloud/vertexai": false,
};
// Following lines will fix issues with onnxruntime-node when using pnpm
// See: https://github.com/vercel/next.js/issues/43433
webpackConfig.externals.push({
"onnxruntime-node": "commonjs onnxruntime-node",
sharp: "commonjs sharp",
});
return webpackConfig;
};
return config;
}