mirror of
https://github.com/zoriya/v10.git
synced 2026-08-16 02:45:09 +00:00
chore(packages): add dev builds (#452)
This commit is contained in:
@@ -172,13 +172,16 @@ When generating or editing code in this repository, follow these rules to ensure
|
||||
- Maintain accessibility: ARIA roles, keyboard interactions, focus management.
|
||||
- Use data‑attributes and CSS variables for style hooks—no inline animation JS.
|
||||
- Ensure logic runs at 60 FPS; prefer CSS transitions over manual DOM mutations.
|
||||
6. **Dev‑Only Diagnostics**
|
||||
- Use `__DEV__` for warnings, debug helpers, and displayName assignments.
|
||||
- Keep production builds free of dev‑only logging and checks.
|
||||
|
||||
6. **Commit Scope**
|
||||
7. **Commit Scope**
|
||||
- Use semantic commit messages (enforced by `commitlint`).
|
||||
- One focused change per commit—no mixed updates.
|
||||
- Breaking changes use `!`.
|
||||
|
||||
7. **Keep AI Documentation Current** — When introducing new patterns, ask the user to run `/claude-update` for guidance.
|
||||
8. **Keep AI Documentation Current** — When introducing new patterns, ask the user to run `/claude-update` for guidance.
|
||||
|
||||
## Code Rules
|
||||
|
||||
|
||||
@@ -12,17 +12,19 @@
|
||||
],
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/index.d.ts",
|
||||
"default": "./dist/index.js"
|
||||
"types": "./dist/dev/index.d.ts",
|
||||
"development": "./dist/dev/index.js",
|
||||
"default": "./dist/default/index.js"
|
||||
},
|
||||
"./dom": {
|
||||
"types": "./dist/dom.d.ts",
|
||||
"default": "./dist/dom.js"
|
||||
"types": "./dist/dev/dom.d.ts",
|
||||
"development": "./dist/dev/dom.js",
|
||||
"default": "./dist/default/dom.js"
|
||||
}
|
||||
},
|
||||
"main": "dist/index.js",
|
||||
"module": "dist/index.js",
|
||||
"types": "dist/index.d.ts",
|
||||
"main": "dist/default/index.js",
|
||||
"module": "dist/default/index.js",
|
||||
"types": "dist/dev/index.d.ts",
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
declare const __DEV__: boolean;
|
||||
@@ -1,6 +1,7 @@
|
||||
const warned = new Set<string>();
|
||||
|
||||
export function logMissingFeature(displayName: string, featureName: string): void {
|
||||
if (!__DEV__) return;
|
||||
const key = `${displayName}:${featureName}`;
|
||||
if (warned.has(key)) return;
|
||||
|
||||
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
declare const __DEV__: boolean;
|
||||
@@ -1,6 +1,11 @@
|
||||
import type { Options } from 'tsdown';
|
||||
import { defineConfig } from 'tsdown';
|
||||
|
||||
export default defineConfig({
|
||||
type BuildMode = 'dev' | 'default';
|
||||
|
||||
const buildModes: BuildMode[] = ['dev', 'default'];
|
||||
|
||||
const createConfig = (mode: BuildMode): Options => ({
|
||||
entry: {
|
||||
index: './src/core/index.ts',
|
||||
dom: './src/dom/index.ts',
|
||||
@@ -12,5 +17,11 @@ export default defineConfig({
|
||||
alias: {
|
||||
'@': new URL('./src/core', import.meta.url).pathname,
|
||||
},
|
||||
dts: true,
|
||||
outDir: `dist/${mode}`,
|
||||
define: {
|
||||
__DEV__: mode === 'dev' ? 'true' : 'false',
|
||||
},
|
||||
dts: mode === 'dev',
|
||||
});
|
||||
|
||||
export default defineConfig(buildModes.map((mode) => createConfig(mode)));
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import { defineConfig } from 'vitest/config';
|
||||
|
||||
export default defineConfig({
|
||||
define: {
|
||||
__DEV__: 'true',
|
||||
},
|
||||
test: {
|
||||
projects: [
|
||||
{
|
||||
|
||||
+22
-16
@@ -14,36 +14,42 @@
|
||||
],
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/index.d.ts",
|
||||
"default": "./dist/index.js"
|
||||
"types": "./dist/dev/index.d.ts",
|
||||
"development": "./dist/dev/index.js",
|
||||
"default": "./dist/default/index.js"
|
||||
},
|
||||
"./player/*": {
|
||||
"types": "./dist/define/player/*.d.ts",
|
||||
"default": "./dist/define/player/*.js"
|
||||
"types": "./dist/dev/define/player/*.d.ts",
|
||||
"development": "./dist/dev/define/player/*.js",
|
||||
"default": "./dist/default/define/player/*.js"
|
||||
},
|
||||
"./ui/*": {
|
||||
"types": "./dist/define/ui/*.d.ts",
|
||||
"default": "./dist/define/ui/*.js"
|
||||
"types": "./dist/dev/define/ui/*.d.ts",
|
||||
"development": "./dist/dev/define/ui/*.js",
|
||||
"default": "./dist/default/define/ui/*.js"
|
||||
},
|
||||
"./skin/*": {
|
||||
"types": "./dist/define/skin/*.d.ts",
|
||||
"default": "./dist/define/skin/*.js"
|
||||
"types": "./dist/dev/define/skin/*.d.ts",
|
||||
"development": "./dist/dev/define/skin/*.js",
|
||||
"default": "./dist/default/define/skin/*.js"
|
||||
},
|
||||
"./feature/*": {
|
||||
"types": "./dist/define/feature/*.d.ts",
|
||||
"default": "./dist/define/feature/*.js"
|
||||
"types": "./dist/dev/define/feature/*.d.ts",
|
||||
"development": "./dist/dev/define/feature/*.js",
|
||||
"default": "./dist/default/define/feature/*.js"
|
||||
},
|
||||
"./media/*": {
|
||||
"types": "./dist/define/media/*.d.ts",
|
||||
"default": "./dist/define/media/*.js"
|
||||
"types": "./dist/dev/define/media/*.d.ts",
|
||||
"development": "./dist/dev/define/media/*.js",
|
||||
"default": "./dist/default/define/media/*.js"
|
||||
}
|
||||
},
|
||||
"sideEffects": [
|
||||
"./dist/define/**/*.js"
|
||||
"./dist/*/define/**/*.js"
|
||||
],
|
||||
"main": "dist/index.js",
|
||||
"module": "dist/index.js",
|
||||
"types": "dist/index.d.ts",
|
||||
"main": "dist/default/index.js",
|
||||
"module": "dist/default/index.js",
|
||||
"types": "dist/dev/index.d.ts",
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
declare const __DEV__: boolean;
|
||||
@@ -1,6 +1,11 @@
|
||||
import { globSync } from 'node:fs';
|
||||
import type { Options } from 'tsdown';
|
||||
import { defineConfig } from 'tsdown';
|
||||
|
||||
type BuildMode = 'dev' | 'default';
|
||||
|
||||
const buildModes: BuildMode[] = ['dev', 'default'];
|
||||
|
||||
const defineEntries = Object.fromEntries(
|
||||
globSync('src/define/**/*.ts').map((file) => {
|
||||
const key = file.replace('src/', '').replace('.ts', '');
|
||||
@@ -8,7 +13,7 @@ const defineEntries = Object.fromEntries(
|
||||
})
|
||||
);
|
||||
|
||||
export default defineConfig({
|
||||
const createConfig = (mode: BuildMode): Options => ({
|
||||
entry: {
|
||||
index: 'src/index.ts',
|
||||
...defineEntries,
|
||||
@@ -20,5 +25,11 @@ export default defineConfig({
|
||||
alias: {
|
||||
'@': new URL('./src', import.meta.url).pathname,
|
||||
},
|
||||
dts: true,
|
||||
outDir: `dist/${mode}`,
|
||||
define: {
|
||||
__DEV__: mode === 'dev' ? 'true' : 'false',
|
||||
},
|
||||
dts: mode === 'dev',
|
||||
});
|
||||
|
||||
export default defineConfig(buildModes.map((mode) => createConfig(mode)));
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import { defineConfig } from 'vitest/config';
|
||||
|
||||
export default defineConfig({
|
||||
define: {
|
||||
__DEV__: 'true',
|
||||
},
|
||||
test: {
|
||||
passWithNoTests: true,
|
||||
onConsoleLog: (log) => !log.includes('Lit is in dev mode'),
|
||||
|
||||
@@ -14,13 +14,14 @@
|
||||
],
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/index.d.ts",
|
||||
"default": "./dist/index.js"
|
||||
"types": "./dist/dev/index.d.ts",
|
||||
"development": "./dist/dev/index.js",
|
||||
"default": "./dist/default/index.js"
|
||||
}
|
||||
},
|
||||
"main": "dist/index.js",
|
||||
"module": "dist/index.js",
|
||||
"types": "dist/index.d.ts",
|
||||
"main": "dist/default/index.js",
|
||||
"module": "dist/default/index.js",
|
||||
"types": "dist/dev/index.d.ts",
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
declare const __DEV__: boolean;
|
||||
@@ -45,7 +45,7 @@ export function createPlayer<const Features extends AnyPlayerFeature[]>(
|
||||
return <PlayerContextProvider value={{ store, media, setMedia }}>{children}</PlayerContextProvider>;
|
||||
}
|
||||
|
||||
if (config.displayName) {
|
||||
if (__DEV__ && config.displayName) {
|
||||
Provider.displayName = `${config.displayName}.Provider`;
|
||||
}
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ export function useButton(params: UseButtonParameters): UseButtonReturnValue {
|
||||
|
||||
const buttonRef = useCallback(
|
||||
(element: HTMLElement | null) => {
|
||||
if (element && element.tagName !== 'BUTTON') {
|
||||
if (__DEV__ && element && element.tagName !== 'BUTTON') {
|
||||
console.warn(`${displayName} should render a <button> element for accessibility`);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
import type { Options } from 'tsdown';
|
||||
import { defineConfig } from 'tsdown';
|
||||
|
||||
export default defineConfig({
|
||||
type BuildMode = 'dev' | 'default';
|
||||
|
||||
const buildModes: BuildMode[] = ['dev', 'default'];
|
||||
|
||||
const createConfig = (mode: BuildMode): Options => ({
|
||||
entry: {
|
||||
index: './src/index.ts',
|
||||
},
|
||||
@@ -11,5 +16,11 @@ export default defineConfig({
|
||||
alias: {
|
||||
'@': new URL('./src', import.meta.url).pathname,
|
||||
},
|
||||
dts: true,
|
||||
outDir: `dist/${mode}`,
|
||||
define: {
|
||||
__DEV__: mode === 'dev' ? 'true' : 'false',
|
||||
},
|
||||
dts: mode === 'dev',
|
||||
});
|
||||
|
||||
export default defineConfig(buildModes.map((mode) => createConfig(mode)));
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import { defineConfig } from 'vitest/config';
|
||||
|
||||
export default defineConfig({
|
||||
define: {
|
||||
__DEV__: 'true',
|
||||
},
|
||||
test: {
|
||||
environment: 'jsdom',
|
||||
include: ['src/**/*.test.{ts,tsx}'],
|
||||
|
||||
@@ -13,21 +13,24 @@
|
||||
],
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/index.d.ts",
|
||||
"default": "./dist/index.js"
|
||||
"types": "./dist/dev/index.d.ts",
|
||||
"development": "./dist/dev/index.js",
|
||||
"default": "./dist/default/index.js"
|
||||
},
|
||||
"./lit": {
|
||||
"types": "./dist/lit.d.ts",
|
||||
"default": "./dist/lit.js"
|
||||
"types": "./dist/dev/lit.d.ts",
|
||||
"development": "./dist/dev/lit.js",
|
||||
"default": "./dist/default/lit.js"
|
||||
},
|
||||
"./react": {
|
||||
"types": "./dist/react.d.ts",
|
||||
"default": "./dist/react.js"
|
||||
"types": "./dist/dev/react.d.ts",
|
||||
"development": "./dist/dev/react.js",
|
||||
"default": "./dist/default/react.js"
|
||||
}
|
||||
},
|
||||
"main": "dist/index.js",
|
||||
"module": "dist/index.js",
|
||||
"types": "dist/index.d.ts",
|
||||
"main": "dist/default/index.js",
|
||||
"module": "dist/default/index.js",
|
||||
"types": "dist/dev/index.d.ts",
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
declare const __DEV__: boolean;
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
declare const __DEV__: boolean;
|
||||
+1
@@ -0,0 +1 @@
|
||||
declare const __DEV__: boolean;
|
||||
@@ -1,6 +1,11 @@
|
||||
import type { Options } from 'tsdown';
|
||||
import { defineConfig } from 'tsdown';
|
||||
|
||||
export default defineConfig({
|
||||
type BuildMode = 'dev' | 'default';
|
||||
|
||||
const buildModes: BuildMode[] = ['dev', 'default'];
|
||||
|
||||
const createConfig = (mode: BuildMode): Options => ({
|
||||
entry: {
|
||||
index: './src/core/index.ts',
|
||||
lit: './src/lit/index.ts',
|
||||
@@ -13,5 +18,11 @@ export default defineConfig({
|
||||
alias: {
|
||||
'@': new URL('./src/core', import.meta.url).pathname,
|
||||
},
|
||||
dts: true,
|
||||
outDir: `dist/${mode}`,
|
||||
define: {
|
||||
__DEV__: mode === 'dev' ? 'true' : 'false',
|
||||
},
|
||||
dts: mode === 'dev',
|
||||
});
|
||||
|
||||
export default defineConfig(buildModes.map((mode) => createConfig(mode)));
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
import { defineConfig } from 'vitest/config';
|
||||
|
||||
export default defineConfig({
|
||||
define: {
|
||||
__DEV__: 'true',
|
||||
},
|
||||
test: {
|
||||
onConsoleLog: (log) => !log.includes('Lit is in dev mode'),
|
||||
projects: [
|
||||
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
declare const __DEV__: boolean;
|
||||
Reference in New Issue
Block a user