Skip to content

fix: declare @tailwindcss/postcss in admin/space/web Docker builds - #9189

Merged
sriramveeraghanta merged 1 commit into
previewfrom
fix/tailwindcss-postcss-build-resolution
Jun 1, 2026
Merged

fix: declare @tailwindcss/postcss in admin/space/web Docker builds#9189
sriramveeraghanta merged 1 commit into
previewfrom
fix/tailwindcss-postcss-build-resolution

Conversation

@sriramveeraghanta

@sriramveeraghanta sriramveeraghanta commented Jun 1, 2026

Copy link
Copy Markdown
Member

Description

The Web, Admin, and Space Docker image builds in the "Branch Build CE" workflow fail at the Vite/PostCSS step with:

[vite:css] Failed to load PostCSS config (searchPath: /app/apps/admin):
Loading PostCSS Plugin failed: Cannot find module '@tailwindcss/postcss'

Root cause: apps/{admin,space,web}/postcss.config.js re-export the shared @plane/tailwind-config/postcss.config.js, which references the @tailwindcss/postcss plugin by name. The plugin was declared only as a dependency of packages/tailwind-config, never of the apps themselves.

The Docker build installs deps via turbo prune --dockerpnpm fetchpnpm install --offline. That flow lays out node_modules so PostCSS resolves the plugin relative to the app directory (apps/<app>), where it is not reachable. A plain pnpm install happens to resolve it from tailwind-config's context instead — which is why local builds passed and masked the bug. (Note: this is pre-existing and not caused by the recent pnpm-catalog migration — earlier runs failed identically. Hoisting via .npmrc is not an option because pnpm v11 ignores the repo's .npmrc pnpm-settings.)

Fix: Declare @tailwindcss/postcss: catalog: as a direct devDependency of the three apps that run Vite/PostCSS, alongside the already-direct @tailwindcss/typography. Under the isolated linker, direct deps are always symlinked into the package's own node_modules, so the plugin resolves from each app's context regardless of the install flow. pnpm-lock.yaml is updated with the three importer edges only (no version changes).

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • Feature (non-breaking change which adds functionality)
  • Improvement (change that would cause existing functionality to not work as expected)
  • Code refactoring
  • Performance improvements
  • Documentation update

Screenshots and Media (if applicable)

Test Scenarios

Verified by reproducing the exact CI Docker install flow locally (turbo prune --scope=<app> --dockerpnpm fetchpnpm install --offline --frozen-lockfile --prod=falseturbo run build --filter=<app>) for all three apps:

App Frozen-lockfile install Build Tailwind output
admin ✅ in sync ✅ 8/8 tasks globals.css 110.89 kB
space ✅ in sync ✅ 10/10 tasks globals.css 164.32 kB
web ✅ in sync ✅ 11/11 tasks globals.css 232.72 kB
  • The --frozen-lockfile install passing confirms the lockfile is in sync with the package.json changes (no CI drift).
  • The CI jobs to watch: Build-Push Admin / Space / Web Docker Image should now go green.

References

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated styling framework dependencies across multiple applications to enhance development infrastructure.

The web/admin/space Docker image builds fail at the Vite/PostCSS step with
"Cannot find module '@tailwindcss/postcss'". These apps load the shared
@plane/tailwind-config/postcss.config.js, which references the @tailwindcss/postcss
plugin by name, but the plugin was only declared as a dependency of
packages/tailwind-config.

The Docker build installs via turbo prune + 'pnpm fetch' + 'pnpm install --offline',
which lays out node_modules so PostCSS resolves the plugin relative to the app
directory (apps/<app>), where it is not reachable. A plain 'pnpm install' resolves
it from tailwind-config's context instead, which is why local builds passed and
masked the issue.

Declare @tailwindcss/postcss as a direct devDependency of the three apps that run
Vite/PostCSS so it is symlinked into each app's node_modules and resolves under the
isolated linker regardless of install flow.

Verified by reproducing the exact Docker flow (prune -> fetch -> --frozen-lockfile
offline install -> build) for admin, space and web: all install in sync and build
successfully with full Tailwind CSS output.
Copilot AI review requested due to automatic review settings June 1, 2026 10:43
@coderabbitai

coderabbitai Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f9fe3232-f9f0-4094-8ef8-645ef39eba2c

📥 Commits

Reviewing files that changed from the base of the PR and between 011328c and f03b74c.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (3)
  • apps/admin/package.json
  • apps/space/package.json
  • apps/web/package.json

📝 Walkthrough

Walkthrough

The PR adds the @tailwindcss/postcss package to the devDependencies of three applications: admin, space, and web. Each addition uses the catalog: version specifier, indicating dependency resolution through a shared catalog configuration. No other scripts, configurations, or dependencies were modified.

Changes

Tailwind CSS PostCSS dependencies

Layer / File(s) Summary
Add @tailwindcss/postcss to app workspaces
apps/admin/package.json, apps/space/package.json, apps/web/package.json
The @tailwindcss/postcss package with catalog version resolution is added to devDependencies in all three app workspace package files as a coordinated update.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Suggested reviewers

  • Palanikannan1437
  • dheeru0198

Poem

🐰 Three packages got a PostCSS treat,
A Tailwind blessing, oh how neat!
The catalog: keeps versions sweet,
Now admin, space, and web compete—
To style with CSS so fleet! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and specifically describes the main change: declaring @tailwindcss/postcss in the three app package.json files for Docker builds.
Description check ✅ Passed The description is comprehensive, covering root cause analysis, the fix applied, and detailed test verification. All required template sections are present and well-populated.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/tailwindcss-postcss-build-resolution

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes Docker CI failures for the web, admin, and space app images where Vite/PostCSS cannot resolve @tailwindcss/postcss during the pruned/offline pnpm install flow by ensuring the plugin is installed in each app’s own dependency context.

Changes:

  • Add @tailwindcss/postcss as a direct devDependency of apps/admin, apps/space, and apps/web.
  • Update pnpm-lock.yaml with the new importer edges (no version bumps).

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated no comments.

File Description
apps/admin/package.json Adds @tailwindcss/postcss to devDependencies so PostCSS plugin resolution works in pruned Docker installs.
apps/space/package.json Adds @tailwindcss/postcss to devDependencies to make plugin resolution reliable in CI Docker builds.
apps/web/package.json Adds @tailwindcss/postcss to devDependencies to prevent Vite/PostCSS config load failures in Docker builds.
pnpm-lock.yaml Records the new dependency edges for the three app importers.
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

@Rahulcheryala
Rahulcheryala self-requested a review June 1, 2026 11:11
@sriramveeraghanta
sriramveeraghanta merged commit e388cb9 into preview Jun 1, 2026
15 checks passed
@sriramveeraghanta
sriramveeraghanta deleted the fix/tailwindcss-postcss-build-resolution branch June 1, 2026 11:14
gentslava pushed a commit to gentslava/plane that referenced this pull request Jun 20, 2026
makeplane#9189)

The web/admin/space Docker image builds fail at the Vite/PostCSS step with
"Cannot find module '@tailwindcss/postcss'". These apps load the shared
@plane/tailwind-config/postcss.config.js, which references the @tailwindcss/postcss
plugin by name, but the plugin was only declared as a dependency of
packages/tailwind-config.

The Docker build installs via turbo prune + 'pnpm fetch' + 'pnpm install --offline',
which lays out node_modules so PostCSS resolves the plugin relative to the app
directory (apps/<app>), where it is not reachable. A plain 'pnpm install' resolves
it from tailwind-config's context instead, which is why local builds passed and
masked the issue.

Declare @tailwindcss/postcss as a direct devDependency of the three apps that run
Vite/PostCSS so it is symlinked into each app's node_modules and resolves under the
isolated linker regardless of install flow.

Verified by reproducing the exact Docker flow (prune -> fetch -> --frozen-lockfile
offline install -> build) for admin, space and web: all install in sync and build
successfully with full Tailwind CSS output.
DoctorFogarty pushed a commit to DoctorFogarty/plane that referenced this pull request Aug 7, 2026
makeplane#9189)

The web/admin/space Docker image builds fail at the Vite/PostCSS step with
"Cannot find module '@tailwindcss/postcss'". These apps load the shared
@plane/tailwind-config/postcss.config.js, which references the @tailwindcss/postcss
plugin by name, but the plugin was only declared as a dependency of
packages/tailwind-config.

The Docker build installs via turbo prune + 'pnpm fetch' + 'pnpm install --offline',
which lays out node_modules so PostCSS resolves the plugin relative to the app
directory (apps/<app>), where it is not reachable. A plain 'pnpm install' resolves
it from tailwind-config's context instead, which is why local builds passed and
masked the issue.

Declare @tailwindcss/postcss as a direct devDependency of the three apps that run
Vite/PostCSS so it is symlinked into each app's node_modules and resolves under the
isolated linker regardless of install flow.

Verified by reproducing the exact Docker flow (prune -> fetch -> --frozen-lockfile
offline install -> build) for admin, space and web: all install in sync and build
successfully with full Tailwind CSS output.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants