用途:作为 Phoenix 项目的资产构建工具链,覆盖 JavaScript、TypeScript、CSS、Tailwind v4、HMR、生产清单构建。
安装:普通应用优先使用 Igniter 安装器,运行 mix igniter.install duskmoon_bundler 后执行 mix phx.server。手动配置需添加依赖 {:duskmoon_bundler_runtime, "~> 9.7"} 和 {:duskmoon_bundler, "~> 9.7", runtime: Mix.env() == :dev};不要将其设置为 only: :dev。
npm 包管理:用 duskmoon_npm 替代 bun/npm/yarn,命令如 mix npm.init、mix npm.install、mix npm.install lodash、mix npm.ci、mix npm.run build、mix npm.exec eslint .。根目录与工作区共用 package.json 与 npm.lock,不提交 node_modules;包生命周期钩子不会自动执行。
主要能力:支持命名 profile 配置多 Web 应用或 umbrella;在 config/config.exs 配置 entry、root、target、sourcemap、tailwind 等;通过 DuskmoonBundler.DevServer 提供开发与 HMR;在布局中使用 DuskmoonBundler.static_path 与 DuskmoonBundler.Preload.tags 生成资源路径;生产构建可用 mix duskmoon_bundler.build --tailwind 与 phx.digest,并支持隐藏 sourcemap、asset_url_prefix、external 等选项。格式化与 lint 可注册 DuskmoonBundler.Formatter,并使用 mix duskmoon_bundler.js.format、mix duskmoon_bundler.lint、mix duskmoon_bundler.js.check。
适用场景:Phoenix 与 Phoenix LiveView 项目的资产设置、迁移和日常开发,尤其适合需要统一 Mix 内完成 npm 与前端构建的团队。
限制:当前资料给出包版本为 9.7.1;其他平台、收费、价格与效果暂未提供。生产助手需 outdir 下存在 manifest.json,Tailwind 类缺失需扩展 sources,umbrella 包解析需配置 resolve_dirs。