Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[🐞] Library builds (--mode lib) print manifest warnings and emit an app manifest

Open
#9,290 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@mridang is already working on this.

Since Oct 25, 2026.

  • #9291 by @mridang — open

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
25/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Stale
Tech stack
typescript, vite
Domain
build-system

Research direction

The report identifies vite-plugin-qwik-post as the entry point and describes reproducing the issue with vite build --mode lib using the shown vite.config.ts. Read the client manifest step and check whether it runs for library builds. Done means library builds skip manifest generation and produce no related warnings; linked PR #9291 is already open.

Written by the indexing model from the issue text.

Description

Which component is affected?

Qwik Rollup / Vite plugin

Describe the bug

Building a Qwik library with qwikVite() and vite build --mode lib prints a console.warn Client manifest generation: skipping external import "<pkg>" for each import the library keeps external (@qwik.dev/core, @qwik.dev/core/jsx-runtime, ...) and a console.error Qwik core bundle not found, is Qwik actually used in this project? on every build. It also writes q-manifest.json and assets/<hash>-bundle-graph.json into the library output.

vite-plugin-qwik-post runs the client manifest step for every build whose environment consumer is client, and a --mode lib build is one. A library keeps Qwik external by design, so the warnings and the error are always true and the manifest is not used (an app reads its own q-manifest.json from its client output).

I expect no manifest work and no warnings for a library build. This is different from #8616, which is the same core-bundle message in a Deno project without a package.json. I have a small fix with a test and will open a PR.

Reproduction

Inline below, a library with one component.

Steps to reproduce

package.json has @qwik.dev/[email protected] and vite@^8.

// vite.config.ts
import { defineConfig } from 'vite';
import { qwikVite } from '@qwik.dev/core/optimizer';

export default defineConfig({
  build: {
    lib: { entry: 'src/index.ts', formats: ['es'], fileName: 'index' },
    rolldownOptions: { external: [/^@qwik\.dev\/core/] },
  },
  plugins: [qwikVite()],
});
// src/counter.tsx (src/index.ts re-exports Counter)
import { component$, useSignal } from '@qwik.dev/core';

export const Counter = component$(() => {
  const count = useSignal(0);
  return <button onClick$={() => count.value++}>{count.value}</button>;
});

Run npx vite build --mode lib. The warning, the error, lib/q-manifest.json and lib/assets/*-bundle-graph.json appear.

System Info
macOS 15.6.1, arm64
Node: 24.12.0, npm: 11.6.2
vite 8.3.5, @qwik.dev/core 2.0.0-rc.3
Dominant language
TypeScript
Stars
22.1k
Forks
1.4k
Avg merge
1d 18h
Merged PRs (30d)
130

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from QwikDev/qwik

All issues in QwikDev/qwik

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.