Catalog npm
Back to packageRELEASE DETAILS

0.2.0

npm

@0x57/viteplus-config

Shared Vite+ configuration used by 0x57 projects

Published30 Sept 2026
Direct dependencies6
Transitive dependenciesNot calculated

README

Current package documentation

@0x57/viteplus-config

Shared Vite+, Oxlint, Oxfmt, and TypeScript configuration used by 0x57 projects.

Usage

bun add -D @0x57/viteplus-config vite-plus
import { config } from "@0x57/viteplus-config";
import { mergeConfig } from "vite-plus";

export default mergeConfig(config, {
	staged: {
		"*": "vp check --fix",
	},
	run: {
		cache: true,
		tasks: {
			build: {
				command: "vpr -r build",
			},
		},
	},
	fmt: {
		sortTailwindcss: {
			stylesheet: "./app/globals.css",
		},
	},
	lint: {
		overrides: [
			{
				files: ["**/*.test.ts"],
				rules: {
					"vitest/no-conditional-expect": "off",
				},
			},
		],
	},
});

mergeConfig recursively merges objects and appends arrays, with the project configuration taking precedence over the shared defaults.

The formatter and linter configs can be imported independently from @0x57/viteplus-config/oxfmt and @0x57/viteplus-config/oxlint. Next.js-specific lint rules are available from @0x57/viteplus-config/oxlint/next.

Next.js lint rules

Merge the Next.js lint preset into the shared configuration for a Next.js project:

import { config } from "@0x57/viteplus-config";
import { config as nextLint } from "@0x57/viteplus-config/oxlint/next";
import { mergeConfig } from "vite-plus";

export default mergeConfig(config, {
	lint: nextLint,
});

Oxlint and Oxfmt without Vite+

Install the native Oxlint and Oxfmt CLIs alongside this package:

bun add -D @0x57/viteplus-config oxlint oxfmt

Create oxlint.config.ts and extend the shared lint configuration:

import { config } from "@0x57/viteplus-config/oxlint";
import { defineConfig } from "oxlint";

export default defineConfig({
	extends: [config],
});

Create oxfmt.config.ts and export the shared formatter configuration:

import { config } from "@0x57/viteplus-config/oxfmt";
import { defineConfig } from "oxfmt";

export default defineConfig(config);

Point the native CLIs at those files in package.json:

{
	"scripts": {
		"format": "oxfmt --config oxfmt.config.ts .",
		"format:check": "oxfmt --config oxfmt.config.ts --check .",
		"lint": "oxlint --config oxlint.config.ts ."
	}
}

These commands use Oxlint and Oxfmt directly; a vite.config.ts and the Vite+ CLI are not needed.

Extend a TypeScript preset from the typescript subpath:

{
	"extends": "@0x57/viteplus-config/typescript/library.json"
}

Codebase Assumptions

Projects use ECMAScript modules, prefer named exports, and include file extensions on relative TypeScript imports.

React projects use React Compiler. The lint configuration reports compiler bailouts and leaves compiler-managed JSX allocation checks to the compiler.

Environment validation

Direct process.env access is restricted to files named environment.ts. These modules are expected to define and validate the application's environment with createEnv from @t3-oss/env-core or @t3-oss/env-nextjs, passing the runtime environment through that validation boundary. Other modules should import the validated env export instead of reading process.env directly.

Development

Install dependencies and run the complete consumer-facing verification suite:

vp install --frozen-lockfile
vp test
vp check
vp pack

Verification runs the tests, checks formatting, lint and type diagnostics, then builds the package.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 7

Native requirements
6 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
semver
Environment
{
  "local_name": "semver",
  "alias": false,
  "peer_metadata": null
}
7.8.5development
valibot
Environment
{
  "local_name": "valibot",
  "alias": false,
  "peer_metadata": null
}
1.5.0development
vite-plus
Environment
{
  "local_name": "vite-plus",
  "alias": false,
  "peer_metadata": null
}
1.0.0development
@types/bun
Environment
{
  "local_name": "@types/bun",
  "alias": false,
  "peer_metadata": null
}
1.4.2development
typescript
Environment
{
  "local_name": "typescript",
  "alias": false,
  "peer_metadata": null
}
7.0.2development
@types/semver
Environment
{
  "local_name": "@types/semver",
  "alias": false,
  "peer_metadata": null
}
7.8.0development
vite-plus
Environment
{
  "local_name": "vite-plus",
  "alias": false,
  "peer_metadata": null
}
1.0.0peer

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "shasum": "599c74e493c40ef7e0f394735df34672d1e066ba",
  "tarball": "https://registry.npmjs.org/@0x57/viteplus-config/-/viteplus-config-0.2.0.tgz",
  "fileCount": 19,
  "integrity": "sha512-NBKm7Yvh6yNTqRKuyIVmOgujNx1CVsQsg9IGg37ksxBy8lKB7mSLUb12iP+xEMWWBz7r6N8pIYYqYJNEDVfOOg==",
  "signatures": [
    {
      "sig": "MEUCIQC6RG/KRsM+DQzZuIP/4OjgRUK+wnIWRxnnUOZA/RjV9gIgaDbWwb2mVfNUaPhM/x+Wgg5KTWUa4QlCrL3b7nG0BE4=",
      "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"
    },
    {
      "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U",
      "sig": "MEYCIQDa+l049FxoGzdfnjHH3Tn9H7HN9Ssu4uAkq+MhTs1g0AIhAKl7Z5mgnheVhd1GO8769SjsvPQiEIzFy/pDLPuidXRJ"
    }
  ],
  "attestations": {
    "url": "https://registry.npmjs.org/-/npm/v1/attestations/@0x57%2fviteplus-config@0.2.0",
    "provenance": {
      "predicateType": "https://slsa.dev/provenance/v1"
    }
  },
  "unpackedSize": 112631
}

Repository

PENDING
ianmitchell/viteplus-config

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 22:37 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:dd4a84813f5be91146a245db22d63d04877edae8a6be8a67d0c76d36a71c870a

Other collected versions

0.1.010 Aug0.0.110 AugView all collected versions →