-
Notifications
You must be signed in to change notification settings - Fork 322
Description
Describe the bug
With a default Next.js app Genkit causes tons of warnings to be displayed at build time. While it does work, this is ugly and potentially worrisome for users. We should investigate and fix.
> [email protected] build /Users/bleigh/sandbox/next-genkit
> next build
▲ Next.js 15.3.4
Creating an optimized production build ...
⚠ Compiled with warnings in 2000ms
./node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@opentelemetry/sdk-node/build/src/TracerProviderWithEnvExporter.js
Module not found: Can't resolve '@opentelemetry/exporter-jaeger' in '/Users/bleigh/sandbox/next-genkit/node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@opentelemetry/sdk-node/build/src'
Import trace for requested module:
./node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@opentelemetry/sdk-node/build/src/TracerProviderWithEnvExporter.js
./node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@opentelemetry/sdk-node/build/src/sdk.js
./node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@opentelemetry/sdk-node/build/src/index.js
./node_modules/.pnpm/@[email protected]/node_modules/@genkit-ai/core/lib/tracing.js
./node_modules/.pnpm/[email protected]/node_modules/genkit/lib/tracing.js
./node_modules/.pnpm/[email protected]/node_modules/genkit/lib/genkit.js
./node_modules/.pnpm/[email protected]/node_modules/genkit/lib/index.mjs
./src/app/api/route.ts
./node_modules/.pnpm/[email protected]/node_modules/handlebars/lib/index.js
require.extensions is not supported by webpack. Use a loader instead.
Import trace for requested module:
./node_modules/.pnpm/[email protected]/node_modules/handlebars/lib/index.js
./node_modules/.pnpm/[email protected]/node_modules/dotprompt/dist/index.js
./node_modules/.pnpm/@[email protected]/node_modules/@genkit-ai/core/lib/registry.js
./node_modules/.pnpm/[email protected]/node_modules/genkit/lib/registry.js
./node_modules/.pnpm/[email protected]/node_modules/genkit/lib/genkit.js
./node_modules/.pnpm/[email protected]/node_modules/genkit/lib/index.mjs
./src/app/api/route.ts
./node_modules/.pnpm/[email protected]/node_modules/handlebars/lib/index.js
require.extensions is not supported by webpack. Use a loader instead.
Import trace for requested module:
./node_modules/.pnpm/[email protected]/node_modules/handlebars/lib/index.js
./node_modules/.pnpm/[email protected]/node_modules/dotprompt/dist/index.js
./node_modules/.pnpm/@[email protected]/node_modules/@genkit-ai/core/lib/registry.js
./node_modules/.pnpm/[email protected]/node_modules/genkit/lib/registry.js
./node_modules/.pnpm/[email protected]/node_modules/genkit/lib/genkit.js
./node_modules/.pnpm/[email protected]/node_modules/genkit/lib/index.mjs
./src/app/api/route.ts
./node_modules/.pnpm/[email protected]/node_modules/handlebars/lib/index.js
require.extensions is not supported by webpack. Use a loader instead.
Import trace for requested module:
./node_modules/.pnpm/[email protected]/node_modules/handlebars/lib/index.js
./node_modules/.pnpm/[email protected]/node_modules/dotprompt/dist/index.js
./node_modules/.pnpm/@[email protected]/node_modules/@genkit-ai/core/lib/registry.js
./node_modules/.pnpm/[email protected]/node_modules/genkit/lib/registry.js
./node_modules/.pnpm/[email protected]/node_modules/genkit/lib/genkit.js
./node_modules/.pnpm/[email protected]/node_modules/genkit/lib/index.mjs
./src/app/api/route.ts
./node_modules/.pnpm/[email protected]/node_modules/require-in-the-middle/index.js
Critical dependency: require function is used in a way in which dependencies cannot be statically extracted
Import trace for requested module:
./node_modules/.pnpm/[email protected]/node_modules/require-in-the-middle/index.js
./node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js
./node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js
./node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js
./node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@opentelemetry/instrumentation/build/esm/index.js
./node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@opentelemetry/sdk-node/build/src/sdk.js
./node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@opentelemetry/sdk-node/build/src/index.js
./node_modules/.pnpm/@[email protected]/node_modules/@genkit-ai/core/lib/tracing.js
./node_modules/.pnpm/[email protected]/node_modules/genkit/lib/tracing.js
./node_modules/.pnpm/[email protected]/node_modules/genkit/lib/genkit.js
./node_modules/.pnpm/[email protected]/node_modules/genkit/lib/index.mjs
./src/app/api/route.ts
./node_modules/.pnpm/@[email protected]/node_modules/@genkit-ai/core/lib/tracing.js
Module not found: Can't resolve '@genkit-ai/firebase' in '/Users/bleigh/sandbox/next-genkit/node_modules/.pnpm/@[email protected]/node_modules/@genkit-ai/core/lib'
Import trace for requested module:
./node_modules/.pnpm/@[email protected]/node_modules/@genkit-ai/core/lib/tracing.js
./node_modules/.pnpm/[email protected]/node_modules/genkit/lib/tracing.js
./node_modules/.pnpm/[email protected]/node_modules/genkit/lib/genkit.js
./node_modules/.pnpm/[email protected]/node_modules/genkit/lib/index.mjs
./src/app/api/route.ts
✓ Compiled successfully in 2000ms
✓ Linting and checking validity of types
✓ Collecting page data
✓ Generating static pages (6/6)
Shutting down all Genkit servers...
Finalizing page optimization . Collecting build traces .Shutting down all Genkit servers...
✓ Collecting build traces
✓ Finalizing page optimization
Route (app) Size First Load JS
┌ ○ / 5.63 kB 107 kB
├ ○ /_not-found 973 B 102 kB
└ ƒ /api 136 B 101 kB
+ First Load JS shared by all 101 kB
├ chunks/664-4a828d82e546d052.js 46.1 kB
├ chunks/68fe4062-d779b407d9ceed68.js 53.2 kB
└ other shared chunks (total) 1.89 kB
○ (Static) prerendered as static content
ƒ (Dynamic) server-rendered on demand
To Reproduce
- Create a fresh Next.js app with
create-next-app
npm i genkit @genkit-ai/googleai @genkit-ai/next
- Create file
src/app/api/route.ts
with the following content:
import googleAI from "@genkit-ai/googleai";
import { genkit, z } from "genkit";
import appRoute from "@genkit-ai/next";
const ai = genkit({
plugins: [googleAI()],
});
const testFlow = ai.defineFlow({ name: "foo" }, async () => "bar");
export const POST = appRoute(testFlow);
- Run
npm run build
.
Expected behavior
The build completes successfully without spewing warning messages.
Screenshots
If applicable, add screenshots to help explain your problem.
Runtime (please complete the following information):
- OS: [e.g. Linux, MacOS]
- Version [e.g. 22]
** Node version
- run
node --version
at paste here
Additional context
At the moment I've managed to hack together this Next.js config file that fixes the build warnings for the default settings, but I have not yet confirmed that everything still works with this config. Need to at a minimum test that telemetry and Dotprompt still work from the built artifacts here:
import type { NextConfig } from "next";
const nextConfig: NextConfig = {
webpack(config) {
config.externals = [
...(config.externals || []),
"@opentelemetry/sdk-node",
"@genkit-ai/firebase",
];
config.resolve.alias = {
...config.resolve.alias,
"handlebars/runtime": "handlebars/dist/cjs/handlebars.runtime",
handlebars: "handlebars/dist/cjs/handlebars",
};
return config;
},
outputFileTracingRoot: "../../",
};
export default nextConfig;
Make sure to verify Turbopack as well.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status