From 7883fb2eaae9086a00978d23ec2c36aa80539d3e Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 17 Dec 2020 14:26:50 -0500 Subject: [PATCH] wip: port rollup-plugin-vue to vite plugin --- .prettierrc | 1 + LICENSE | 2 +- package.json | 3 +- packages/playground/package.json | 15 +- packages/playground/public/icon.png | Bin 0 -> 3395 bytes packages/playground/sfcs/Hmr.vue | 4 +- packages/playground/sfcs/Main.vue | 3 + .../playground/sfcs/test-assets/Assets.vue | 62 ++++ .../playground/sfcs/test-assets/asset.css | 4 + .../test-assets/nested/asset.png} | Bin packages/playground/tsconfig.json | 5 + packages/playground/vite.config.ts | 7 +- packages/plugin-react-refresh/package.json | 15 + packages/plugin-vue/package.json | 34 +- packages/plugin-vue/src/handleHotUpdate.ts | 194 +++++++++++ packages/plugin-vue/src/index.ts | 167 +++++++++ packages/plugin-vue/src/main.ts | 328 ++++++++++++++++++ packages/plugin-vue/src/script.ts | 49 +++ packages/plugin-vue/src/style.ts | 41 +++ packages/plugin-vue/src/template.ts | 111 ++++++ .../plugin-vue/src/utils/descriptorCache.ts | 26 ++ packages/plugin-vue/src/utils/error.ts | 30 ++ packages/plugin-vue/src/utils/query.ts | 24 ++ packages/plugin-vue/tsconfig.json | 21 ++ packages/vite/src/client/tsconfig.json | 4 +- packages/vite/src/node/build/index.ts | 4 +- packages/vite/src/node/config.ts | 18 +- packages/vite/src/node/plugins/resolve.ts | 6 +- packages/vite/src/node/tsconfig.json | 4 +- yarn.lock | 170 ++++++++- 30 files changed, 1320 insertions(+), 32 deletions(-) create mode 100644 packages/playground/public/icon.png create mode 100644 packages/playground/sfcs/test-assets/Assets.vue create mode 100644 packages/playground/sfcs/test-assets/asset.css rename packages/playground/{public/logo.png => sfcs/test-assets/nested/asset.png} (100%) create mode 100644 packages/playground/tsconfig.json create mode 100644 packages/plugin-vue/src/handleHotUpdate.ts create mode 100644 packages/plugin-vue/src/index.ts create mode 100644 packages/plugin-vue/src/main.ts create mode 100644 packages/plugin-vue/src/script.ts create mode 100644 packages/plugin-vue/src/style.ts create mode 100644 packages/plugin-vue/src/template.ts create mode 100644 packages/plugin-vue/src/utils/descriptorCache.ts create mode 100644 packages/plugin-vue/src/utils/error.ts create mode 100644 packages/plugin-vue/src/utils/query.ts create mode 100644 packages/plugin-vue/tsconfig.json diff --git a/.prettierrc b/.prettierrc index 38d9aa9aa604e4..5187c03a0ca828 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,4 +1,5 @@ semi: false +tabWidth: 2 singleQuote: true printWidth: 80 trailingComma: none diff --git a/LICENSE b/LICENSE index 93a897153237ff..9c1b313d7b1816 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019-present, Yuxi (Evan) You +Copyright (c) 2019-present, Yuxi (Evan) You and Vite contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/package.json b/package.json index 744a5eab5b2cfb..d6f9102a26e180 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "packages/*" ], "scripts": { - "lint": "eslint --ext .ts packages/*/src/**" + "lint": "eslint --ext .ts packages/*/src/**", + "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" }, "devDependencies": { "@types/node": "^14.14.10", diff --git a/packages/playground/package.json b/packages/playground/package.json index 5b549951cb328d..882f38d96dbc7b 100644 --- a/packages/playground/package.json +++ b/packages/playground/package.json @@ -8,19 +8,20 @@ "serve": "sirv dist", "debug": "node --inspect-brk ../vite/bin/vite.js --debug" }, + "dependencies": { + "@pika/react": "^16.13.1", + "@pika/react-dom": "^16.13.1", + "lodash-es": "^4.17.15", + "preact": "^10.5.7", + "vue": "^3.0.4" + }, "devDependencies": { + "@vitejs/plugin-vue": "^1.0.0", "@vitejs/plugin-react-refresh": "^1.0.0", "less": "^3.13.0", "pug": "^3.0.0", "rollup-plugin-vue": "^6.0.0", "sass": "^1.30.0", "sirv-cli": "^1.0.9" - }, - "dependencies": { - "@pika/react": "^16.13.1", - "@pika/react-dom": "^16.13.1", - "lodash-es": "^4.17.15", - "preact": "^10.5.7", - "vue": "^3.0.4" } } diff --git a/packages/playground/public/icon.png b/packages/playground/public/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4388bfdca3d4d778d2f25a5861599f8f19a1177c GIT binary patch literal 3395 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 literal 0 HcmV?d00001 diff --git a/packages/playground/sfcs/Hmr.vue b/packages/playground/sfcs/Hmr.vue index 270dd8c448da77..216682733a9dc2 100644 --- a/packages/playground/sfcs/Hmr.vue +++ b/packages/playground/sfcs/Hmr.vue @@ -1,5 +1,5 @@