Skip to content

Commit 779a49c

Browse files
committed
test: add vite build unit test
1 parent aaccc11 commit 779a49c

File tree

15 files changed

+388
-44
lines changed

15 files changed

+388
-44
lines changed

apps/webpack5-vue3/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"prepare": "tw-patch"
1111
},
1212
"dependencies": {
13-
"core-js": "^3.30.2",
13+
"core-js": "^3.31.0",
1414
"vue": "^3.3.4",
1515
"vue-router": "^4.2.2"
1616
},

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
"jest": "^29.5.0",
3434
"only-allow": "^1.1.1",
3535
"prettier": "^2.8.8",
36-
"rollup": "^3.25.0",
36+
"rollup": "^3.25.1",
3737
"tailwindcss-mangle-core": "workspace:*",
3838
"tailwindcss-mangle-shared": "workspace:*",
3939
"tailwindcss-patch": "workspace:*",
@@ -45,7 +45,7 @@
4545
"engines": {
4646
"node": ">=14.0.0"
4747
},
48-
"packageManager": "pnpm@8.6.1",
48+
"packageManager": "pnpm@8.6.2",
4949
"dependencies": {
5050
"vitest": "^0.32.0"
5151
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
pnpm-debug.log*
8+
lerna-debug.log*
9+
10+
node_modules
11+
dist
12+
dist-ssr
13+
*.local
14+
15+
# Editor directories and files
16+
.vscode/*
17+
!.vscode/extensions.json
18+
.idea
19+
.DS_Store
20+
*.suo
21+
*.ntvs*
22+
*.njsproj
23+
*.sln
24+
*.sw?
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7+
<title>Vite + TS</title>
8+
</head>
9+
<body>
10+
<div id="app"></div>
11+
<script type="module" src="/src/main.ts"></script>
12+
</body>
13+
</html>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"name": "vite-typescript-starter",
3+
"private": true,
4+
"version": "0.0.0",
5+
"type": "module",
6+
"scripts": {
7+
"dev": "vite",
8+
"build": "tsc && vite build",
9+
"preview": "vite preview"
10+
},
11+
"devDependencies": {
12+
"typescript": "^5.0.2",
13+
"vite": "^4.3.9"
14+
}
15+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
const path = require('path')
2+
3+
module.exports = {
4+
plugins: {
5+
tailwindcss: {
6+
config: path.resolve(__dirname, './tailwind.config.cjs')
7+
},
8+
// autoprefixer: {},
9+
}
10+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
export function setupCounter(element: HTMLButtonElement) {
2+
element.animate({
3+
clipPath: []
4+
},
5+
{
6+
duration: 400,
7+
easing: 'ease-out',
8+
})
9+
}
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
import './style.css'
2+
import { setupCounter } from './counter.ts'
3+
4+
document.querySelector<HTMLDivElement>('#app')!.innerHTML = `
5+
<div>
6+
<button id="counter">counter</button>
7+
</div>
8+
` + `
9+
<main class="flex min-h-screen flex-col items-center justify-between p-24">
10+
<div class="z-10 w-full max-w-5xl items-center justify-between font-mono text-sm lg:flex">
11+
<p
12+
class="fixed left-0 top-0 flex w-full justify-center border-b border-gray-300 bg-gradient-to-b from-zinc-200 pb-6 pt-8 backdrop-blur-2xl dark:border-neutral-800 dark:bg-zinc-800/30 dark:from-inherit lg:static lg:w-auto lg:rounded-xl lg:border lg:bg-gray-200 lg:p-4 lg:dark:bg-zinc-800/30">
13+
Get started by editing&nbsp;
14+
<code class="font-mono font-bold">pages/index.tsx</code>
15+
</p>
16+
<div
17+
class="fixed bottom-0 left-0 flex h-48 w-full items-end justify-center bg-gradient-to-t from-white via-white dark:from-black dark:via-black lg:static lg:h-auto lg:w-auto lg:bg-none">
18+
<a class="pointer-events-none flex place-items-center gap-2 p-8 lg:pointer-events-auto lg:p-0"
19+
href="https://vercel.com?utm_source=create-next-app&utm_medium=default-template-tw&utm_campaign=create-next-app"
20+
target="_blank" rel="noopener noreferrer">
21+
By
22+
</a>
23+
</div>
24+
</div>
25+
26+
<div
27+
class="relative flex place-items-center before:absolute before:h-[300px] before:w-[480px] before:-translate-x-1/2 before:rounded-full before:bg-gradient-radial before:from-white before:to-transparent before:blur-2xl before:content-[''] after:absolute after:-z-20 after:h-[180px] after:w-[240px] after:translate-x-1/3 after:bg-gradient-conic after:from-sky-200 after:via-blue-200 after:blur-2xl after:content-[''] before:dark:bg-gradient-to-br before:dark:from-transparent before:dark:to-blue-700/10 after:dark:from-sky-900 after:dark:via-[#0141ff]/40 before:lg:h-[360px]">
28+
<img class="relative dark:drop-shadow-[0_0_0.3rem_#ffffff70] dark:invert" src="/vite.svg" alt="Next.js Logo"
29+
priority />
30+
</div>
31+
32+
<div class="mb-32 grid text-center lg:mb-0 lg:grid-cols-4 lg:text-left">
33+
<a href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=default-template-tw&utm_campaign=create-next-app"
34+
class="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
35+
target="_blank" rel="noopener noreferrer">
36+
<h2 class="mb-3 text-2xl font-semibold">
37+
Docs <span
38+
class="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">-&gt;</span>
39+
</h2>
40+
<p class="m-0 max-w-[30ch] text-sm opacity-50">Find in-depth information about Next.js
41+
features and API.</p>
42+
</a>
43+
44+
<a href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=default-template-tw&utm_campaign=create-next-app"
45+
class="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
46+
target="_blank" rel="noopener noreferrer">
47+
<h2 class="mb-3 text-2xl font-semibold">
48+
Learn <span
49+
class="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">-&gt;</span>
50+
</h2>
51+
<p class="m-0 max-w-[30ch] text-sm opacity-50">Learn about Next.js in an interactive
52+
course with&nbsp;quizzes!</p>
53+
</a>
54+
55+
<a href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=default-template-tw&utm_campaign=create-next-app"
56+
class="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
57+
target="_blank" rel="noopener noreferrer">
58+
<h2 class="mb-3 text-2xl font-semibold">
59+
Templates <span
60+
class="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">-&gt;</span>
61+
</h2>
62+
<p class="m-0 max-w-[30ch] text-sm opacity-50">Discover and deploy boilerplate example
63+
Next.js&nbsp;projects.</p>
64+
</a>
65+
66+
<a href="https://vercel.com/new?utm_source=create-next-app&utm_medium=default-template-tw&utm_campaign=create-next-app"
67+
class="group rounded-lg border border-transparent px-5 py-4 transition-colors hover:border-gray-300 hover:bg-gray-100 hover:dark:border-neutral-700 hover:dark:bg-neutral-800/30"
68+
target="_blank" rel="noopener noreferrer">
69+
<h2 class="mb-3 text-2xl font-semibold">
70+
Deploy <span
71+
class="inline-block transition-transform group-hover:translate-x-1 motion-reduce:transform-none">-&gt;</span>
72+
</h2>
73+
<p class="m-0 max-w-[30ch] text-sm opacity-50">Instantly deploy your Next.js site to a
74+
shareable URL with Vercel.</p>
75+
</a>
76+
</div>
77+
</main>
78+
`
79+
80+
setupCounter(document.querySelector<HTMLButtonElement>('#counter')!)
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
@tailwind base;
2+
@tailwind components;
3+
@tailwind utilities;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/// <reference types="vite/client" />
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
const path = require('path')
2+
3+
/** @type {import('tailwindcss').Config} */
4+
module.exports = {
5+
content: [path.resolve(__dirname, "./src/**/*.{html,js}")],
6+
theme: {
7+
extend: {},
8+
},
9+
plugins: [],
10+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"compilerOptions": {
3+
"target": "ES2020",
4+
"useDefineForClassFields": true,
5+
"module": "ESNext",
6+
"lib": ["ES2020", "DOM", "DOM.Iterable"],
7+
"skipLibCheck": true,
8+
9+
/* Bundler mode */
10+
"moduleResolution": "bundler",
11+
"allowImportingTsExtensions": true,
12+
"resolveJsonModule": true,
13+
"isolatedModules": true,
14+
"noEmit": true,
15+
16+
/* Linting */
17+
"strict": true,
18+
"noUnusedLocals": true,
19+
"noUnusedParameters": true,
20+
"noFallthroughCasesInSwitch": true
21+
},
22+
"include": ["src"]
23+
}
Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,14 @@
11
import { build } from 'vite'
22
import { describe, it, expect } from 'vitest'
3-
4-
describe('vite build', () => {})
3+
import path from 'node:path'
4+
describe('vite build', () => {
5+
it('common build ', async () => {
6+
const res = await build({
7+
root: path.resolve(__dirname, 'fixtures/vite-repo'),
8+
build: {
9+
write: false
10+
}
11+
})
12+
console.log(res)
13+
})
14+
})

packages/unplugin-tailwindcss-mangle/test/webpack.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ import webpack from 'webpack'
22
import { describe, it, expect } from 'vitest'
33

44
describe('webpack build', () => {
5+
it('common', () => {
6+
expect(true).toBe(true)
7+
})
58
// webpack({}, (err, stats) => {
69
// if (err || stats.hasErrors()) {
710
// // ...

0 commit comments

Comments
 (0)