Skip to content

Commit 7883fb2

Browse files
committed
wip: port rollup-plugin-vue to vite plugin
1 parent 28bd292 commit 7883fb2

30 files changed

+1320
-32
lines changed

.prettierrc

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
semi: false
2+
tabWidth: 2
23
singleQuote: true
34
printWidth: 80
45
trailingComma: none

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2019-present, Yuxi (Evan) You
3+
Copyright (c) 2019-present, Yuxi (Evan) You and Vite contributors
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
"packages/*"
66
],
77
"scripts": {
8-
"lint": "eslint --ext .ts packages/*/src/**"
8+
"lint": "eslint --ext .ts packages/*/src/**",
9+
"bundle": "esbuild packages/vite/src/node/index.ts packages/vite/src/node/cli.ts --bundle --platform=node --target=node12 --external:fsevents --external:sugarss --external:bufferutil --external:utf-8-validate --outdir=esbuild"
910
},
1011
"devDependencies": {
1112
"@types/node": "^14.14.10",

packages/playground/package.json

+8-7
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,20 @@
88
"serve": "sirv dist",
99
"debug": "node --inspect-brk ../vite/bin/vite.js --debug"
1010
},
11+
"dependencies": {
12+
"@pika/react": "^16.13.1",
13+
"@pika/react-dom": "^16.13.1",
14+
"lodash-es": "^4.17.15",
15+
"preact": "^10.5.7",
16+
"vue": "^3.0.4"
17+
},
1118
"devDependencies": {
19+
"@vitejs/plugin-vue": "^1.0.0",
1220
"@vitejs/plugin-react-refresh": "^1.0.0",
1321
"less": "^3.13.0",
1422
"pug": "^3.0.0",
1523
"rollup-plugin-vue": "^6.0.0",
1624
"sass": "^1.30.0",
1725
"sirv-cli": "^1.0.9"
18-
},
19-
"dependencies": {
20-
"@pika/react": "^16.13.1",
21-
"@pika/react-dom": "^16.13.1",
22-
"lodash-es": "^4.17.15",
23-
"preact": "^10.5.7",
24-
"vue": "^3.0.4"
2526
}
2627
}

packages/playground/public/icon.png

3.32 KB
Loading

packages/playground/sfcs/Hmr.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<h2>Vue SFC HMRss {{ count }}</h2>
2+
<h2>Vue SFC HMRsfsefefs {{ count }}</h2>
33
<p>Click the button then edit this message. The count should be preserved.</p>
44
<div>filler</div>
55
<button @click="count++">count is {{ count }}</button>
@@ -8,7 +8,7 @@
88
<script setup lang="ts">
99
import { ref } from 'vue'
1010
11-
let foo: number = 1
11+
let foo: number = 0
1212
1313
console.log('wo')
1414
const count = ref(foo)

packages/playground/sfcs/Main.vue

+3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<Json />
77
<PreProcessors />
88
<CssModules />
9+
<Assets />
910
</template>
1011

1112
<script setup lang="ts">
@@ -15,12 +16,14 @@ import Syntax from './Syntax.vue'
1516
import Json from './Json.vue'
1617
import PreProcessors from './PreProcessors.vue'
1718
import CssModules from './CssModules.vue'
19+
import Assets from './test-assets/Assets.vue'
1820
1921
import { ref, onMounted } from 'vue'
2022
2123
const time = ref('loading...')
2224
2325
onMounted(() => {
26+
// @ts-ignore
2427
time.value = `loaded in ${(performance.now() - window.start).toFixed(2)}ms.`
2528
})
2629
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
<template>
2+
<h2>Static Asset Handling</h2>
3+
<p>
4+
Fonts should be italic if font asset reference from CSS works.
5+
</p>
6+
<p class="asset-import">
7+
Path for assets import from js: <code>{{ filepath }}</code>
8+
</p>
9+
<p>
10+
Relative asset reference in template:
11+
<img class="relative-import" src="./nested/asset.png" data-src="./nested/asset.png" style="width: 30px;" />
12+
</p>
13+
<p>
14+
Absolute asset reference in template:
15+
<img src="/icon.png" style="width: 30px;" />
16+
</p>
17+
<div class="css-bg">
18+
<span style="background: #fff;">CSS background</span>
19+
</div>
20+
<div class="css-import-bg">
21+
<span style="background: #fff;">CSS background with relative paths</span>
22+
</div>
23+
<div class="css-bg-data-uri">
24+
<span style="background: #fff;">CSS background with Data URI</span>
25+
</div>
26+
</template>
27+
28+
<script>
29+
import './asset.css'
30+
import filepath from './nested/asset.png'
31+
32+
export default {
33+
data() {
34+
return {
35+
filepath
36+
}
37+
}
38+
}
39+
</script>
40+
41+
<style>
42+
@font-face {
43+
font-family: 'Inter';
44+
font-style: italic;
45+
font-weight: 400;
46+
font-display: swap;
47+
src: url('../fonts/Inter-Italic.woff2?#iefix') format('woff2'),
48+
url('/fonts/Inter-Italic.woff') format('woff');
49+
}
50+
51+
body {
52+
font-family: 'Inter';
53+
}
54+
.css-bg {
55+
background: url(/icon.png);
56+
background-size: 10px;
57+
}
58+
.css-bg-data-uri {
59+
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA0CAYAAADWr1sfAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTAyNkI1RkE4N0VCMTFFQUFBQzJENzUzNDFGRjc1N0UiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTAyNkI1Rjk4N0VCMTFFQUFBQzJENzUzNDFGRjc1N0UiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTc3NzA2Q0Y4N0FCMTFFM0I3MERFRTAzNzcwNkMxMjMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTc3NzA2RDA4N0FCMTFFM0I3MERFRTAzNzcwNkMxMjMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6nwnGxAAAJtklEQVR42txZ6W9c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);
60+
background-size: 10px;
61+
}
62+
</style>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
.css-import-bg {
2+
background: url(./nested/asset.png);
3+
background-size: 10px;
4+
}

packages/playground/tsconfig.json

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"compilerOptions": {
3+
"allowJs": true
4+
}
5+
}

packages/playground/vite.config.ts

+2-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
import { defineConfig } from 'vite'
2-
import vue from 'rollup-plugin-vue'
2+
import vue from '@vitejs/plugin-vue'
33
import reactRefresh from '@vitejs/plugin-react-refresh'
44

55
export default defineConfig({
66
plugins: [
77
// reactRefresh,
8-
vue({
9-
hmr: true,
10-
vite: true
11-
})
8+
vue()
129
],
1310
alias: {
1411
react: '@pika/react/source.development.js',

packages/plugin-react-refresh/package.json

+15
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,21 @@
11
{
22
"name": "@vitejs/plugin-react-refresh",
33
"version": "1.0.0",
4+
"license": "MIT",
5+
"files": [
6+
"index.js"
7+
],
8+
"engines": {
9+
"node": ">=12.0.0"
10+
},
11+
"repository": {
12+
"type": "git",
13+
"url": "git+https://github.com/vitejs/vite.git"
14+
},
15+
"bugs": {
16+
"url": "https://github.com/vitejs/vite/issues"
17+
},
18+
"homepage": "https://github.com/vitejs/vite/tree/master/#readme",
419
"dependencies": {
520
"@babel/core": "^7.12.10",
621
"@babel/plugin-syntax-import-meta": "^7.10.4",

packages/plugin-vue/package.json

+33-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,36 @@
11
{
22
"name": "@vitejs/plugin-vue",
3-
"version": "1.0.0"
3+
"version": "1.0.0",
4+
"license": "MIT",
5+
"files": [
6+
"dist"
7+
],
8+
"main": "dist/index.js",
9+
"types": "dist/index.d.ts",
10+
"scripts": {
11+
"dev": "tsc -w --incremental -p ."
12+
},
13+
"engines": {
14+
"node": ">=12.0.0"
15+
},
16+
"repository": {
17+
"type": "git",
18+
"url": "git+https://github.com/vitejs/vite.git"
19+
},
20+
"bugs": {
21+
"url": "https://github.com/vitejs/vite/issues"
22+
},
23+
"homepage": "https://github.com/vitejs/vite/tree/master/#readme",
24+
"peerDependencies": {
25+
"@vue/compiler-sfc": "^3.0.4"
26+
},
27+
"devDependencies": {
28+
"@rollup/pluginutils": "^4.1.0",
29+
"@types/hash-sum": "^1.0.0",
30+
"@vue/compiler-sfc": "^3.0.4",
31+
"debug": "^4.3.1",
32+
"hash-sum": "^2.0.0",
33+
"rollup": "^2.35.1",
34+
"source-map": "^0.6.1"
35+
}
436
}

0 commit comments

Comments
 (0)