Packages
volt
0.11.3
0.17.10
0.17.9
0.17.8
0.17.7
0.17.6
0.17.5
0.17.4
0.17.3
0.17.2
0.17.1
0.17.0
0.16.0
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.12
0.14.11
0.14.10
0.14.9
0.14.8
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.1
0.13.0
0.12.0
0.11.3
0.11.2
0.11.1
0.11.0
0.10.9
0.10.8
0.10.7
0.10.6
0.10.5
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.2
0.9.1
0.9.0
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.1
0.7.0
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.3
0.4.2
0.4.1
0.4.0
0.3.0
0.2.0
0.1.0
Elixir-native frontend build tool — dev server, HMR, and production builds powered by OXC and Vize.
Current section
Files
Jump to
Current section
Files
mix.exs
defmodule Volt.MixProject do
use Mix.Project
@version "0.11.3"
@source_url "https://github.com/elixir-volt/volt"
def project do
[
app: :volt,
version: @version,
elixir: "~> 1.17",
start_permanent: Mix.env() == :prod,
deps: deps(),
aliases: aliases(),
dialyzer: [plt_add_apps: [:mix]],
name: "Volt",
description:
"Elixir-native frontend build tool — dev server, HMR, and production builds powered by OXC and Vize.",
source_url: @source_url,
homepage_url: @source_url,
package: package(),
docs: docs()
]
end
def application do
[
extra_applications: [:logger],
mod: {Volt.Application, []}
]
end
defp deps do
[
{:reach, "~> 2.0"},
{:oxc, "~> 0.13.0"},
{:vize, "~> 0.10.0"},
{:oxide_ex, "~> 0.2.1"},
{:quickbeam, "~> 0.10.13"},
{:dotenvy, "~> 1.1"},
{:floki, "~> 0.38"},
{:plug, "~> 1.16"},
{:websock_adapter, "~> 0.5"},
{:file_system, "~> 1.0"},
{:jason, "~> 1.4"},
{:igniter, "~> 0.5", optional: true},
{:npm, "~> 0.7.3"},
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:ex_slop, "~> 0.2", only: [:dev, :test], runtime: false},
{:ex_dna, "~> 1.1", only: [:dev, :test], runtime: false},
{:ex_doc, "~> 0.35", only: :dev, runtime: false},
{:makeup_js, "~> 0.1", only: :dev, runtime: false},
{:bandit, "~> 1.0", only: :test},
{:playwright_ex, "~> 0.5", only: :test}
]
end
defp aliases do
[
lint: [
"format --check-formatted",
"volt.js.check",
"credo --strict",
"ex_dna",
"dialyzer"
],
setup: ["deps.get"],
ci: ["lint", "cmd env MIX_ENV=test mix test"]
]
end
defp package do
[
licenses: ["MIT"],
links: %{"GitHub" => @source_url},
files: ~w[lib priv guides mix.exs README.md CHANGELOG.md LICENSE]
]
end
defp docs do
[
main: "readme",
source_ref: "v#{@version}",
extras: [
"README.md",
"CHANGELOG.md",
"guides/introduction/getting-started.md",
"guides/introduction/why-volt.md",
"guides/features/features.md",
"guides/features/frameworks.md",
"guides/features/tailwind.md",
"guides/features/hmr.md",
"guides/features/code-splitting.md",
"guides/features/css-modules.md",
"guides/features/static-assets.md",
"guides/features/environment-variables.md",
"guides/features/glob-imports.md",
"guides/features/plugins.md",
"guides/features/formatting-and-linting.md",
"guides/deployment/production-builds.md",
"guides/migration/from-esbuild.md",
"guides/cheatsheets/configuration.cheatmd",
"guides/cheatsheets/cli.cheatmd"
],
groups_for_extras: [
Introduction: ~r/guides\/introduction\//,
Features: ~r/guides\/features\//,
Deployment: ~r/guides\/deployment\//,
Migration: ~r/guides\/migration\//,
Cheatsheets: ~r/guides\/cheatsheets\//
],
groups_for_modules: [
Core: [Volt, Volt.Pipeline, Volt.Config],
"Dev Server": [Volt.DevServer, Volt.Watcher, Volt.Dev.ConsoleForwarder],
HMR: [Volt.HMR.Boundary, Volt.HMR.Client, Volt.HMR.Socket],
"Production Build": [Volt.Builder, Volt.ChunkGraph, Volt.Preload],
"Tailwind CSS": [Volt.Tailwind],
CSS: [Volt.CSS.Modules],
Plugins: [
Volt.Plugin,
Volt.Plugin.Vue,
Volt.Plugin.Svelte,
Volt.Plugin.React,
Volt.Plugin.Solid,
Volt.PluginRunner
],
JavaScript: [
Volt.JS.Runtime,
Volt.JS.GlobImport,
Volt.JS.PackageResolver,
Volt.Env,
Volt.Assets
],
Formatting: [Volt.Formatter],
"Mix Tasks": [
Mix.Tasks.Volt.Build,
Mix.Tasks.Volt.Dev,
Mix.Tasks.Volt.Lint,
Mix.Tasks.Volt.Js.Format,
Mix.Tasks.Volt.Js.Check,
Mix.Tasks.Volt.Install
]
],
skip_undefined_reference_warnings_on: ["CHANGELOG.md"]
]
end
end