Skip to content

feat(assets): 使用 npm 管理前端外部依赖#212

Draft
ThaddeusJiang wants to merge 1 commit into
mainfrom
feat/npm-frontend-assets
Draft

feat(assets): 使用 npm 管理前端外部依赖#212
ThaddeusJiang wants to merge 1 commit into
mainfrom
feat/npm-frontend-assets

Conversation

@ThaddeusJiang

Copy link
Copy Markdown
Owner

Summary

  • 将 Tailwind CSS、daisyUI、Heroicons、Choices.js 改为通过 assets/package.jsonassets/package-lock.json 管理。
  • 移除 assets/vendor 中复制的外部依赖源码,并更新 CSS/JS import。
  • 保留 Phoenix JS packages 与 esbuild 在 Mix/Hex 依赖中管理。
  • 更新 Docker 构建、开发文档和资产管线测试。

Why

  • 避免继续复制外部依赖源码到仓库,统一使用 npm lockfile 管理外部前端包。
  • 保持 Phoenix/LiveView/esbuild 仍沿用 Phoenix/Mix 生态,减少重复依赖管理。

Validation

  1. MIX_DEPS_PATH=deps mix format --check-formatted
  2. MIX_DEPS_PATH=deps mix compile --warnings-as-errors
  3. DATABASE_URL=postgres://postgres:postgres@localhost:20001/vmemo_test TYPESENSE_URL=http://localhost:20002 TYPESENSE_API_KEY=xyz MIX_DEPS_PATH=deps mix test test/vmemo/assets_pipeline_test.exs
  4. npm run build --prefix assets
  5. MIX_DEPS_PATH=deps mix assets.deploy
  6. git diff --check

Related

  • Issues: N/A
  • PRs: N/A

Notes

  • phoenixphoenix_htmlphoenix_live_view 不进入 npm。
  • esbuild 不进入 npm,继续使用 Mix/Hex wrapper。
  • 本地 shell 存在旧的共享 MIX_DEPS_PATH,验证时显式使用 MIX_DEPS_PATH=deps 以避免读到旧编译产物。

@ThaddeusJiang ThaddeusJiang self-assigned this Jun 12, 2026
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.

1 participant