From 446c843f8fa102c4d484069a032c14cd3b0b8719 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=86=B0cc?= Date: Thu, 14 Jul 2022 14:51:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=201.2.3=E7=89=88=E6=9C=AC=E5=8F=91?= =?UTF-8?q?=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 66 ++++++++++++++++++++++++++++++++++---------------- package.json | 4 ++-- src/index.ts | 68 +++++++++++++++++++--------------------------------- 3 files changed, 72 insertions(+), 66 deletions(-) diff --git a/README.md b/README.md index 0efda9a..d7a9fc2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # ⚡ vite-plugin-earth -Easily set up a [`Cesium`] & [`mars3d`] project in [`Vite`]. +Easily set up a [`cesium`] & [`mars3d-cesium`] project in [`Vite`]. [`cesium`]: https://github.com/CesiumGS/cesium [`mars3d`]: https://mars3d.cn/ @@ -8,8 +8,7 @@ Easily set up a [`Cesium`] & [`mars3d`] project in [`Vite`]. ## Install ```bash -npm i cesium vite-plugin-earth vite -D -# yarn add cesium vite-plugin-earth vite -D +npm i vite-plugin-earth -D ``` ## Usage @@ -18,28 +17,53 @@ add this plugin to `vite.config.js` ```js import { defineConfig } from 'vite'; -import earthPlugin from 'vite-plugin-earth'; +import earth from 'vite-plugin-earth'; export default defineConfig({ - plugins: [earthPlugin()] + plugins: [earth()] }); ``` -add dev command to `package.json` - -```json -"scripts": { - "dev": "vite", - "build": "vite build" -} -``` - -run: - -`yarn dev` - ## Options -**rebuildCesium** +### **pkgName** + +- **Type :** `string` +- **Default :** `cesium` + +`mars3d-cesium` 为`mars3d`对应的依赖库 + +```js +import { defineConfig } from 'vite'; +import earth from 'vite-plugin-earth'; +export default defineConfig({ + plugins: [ + earth({ + pkgName: 'mars3d-cesium' + }) + ] +}); +``` + +### **libPath** + +- **Type :** `string` +- **Default :** `lib` + +将类库复制到指定的`lib/`目录下面 + +```js +import { defineConfig } from 'vite'; +import earth from 'vite-plugin-earth'; +export default defineConfig({ + plugins: [ + earth({ + libPath: 'lib' + }) + ] +}); +``` + +### **rebuildCesium** - **Type :** `boolean` - **Default :** `false` @@ -48,10 +72,10 @@ Default copy min cesium file to dist. if `true` will rebuild cesium from source. ```js import { defineConfig } from 'vite'; -import earthPlugin from 'vite-plugin-earth'; +import earth from 'vite-plugin-earth'; export default defineConfig({ plugins: [ - earthPlugin({ + earth({ rebuildCesium: true }) ] diff --git a/package.json b/package.json index 5f94650..e270cc3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vite-plugin-earth", - "version": "1.1.0", + "version": "1.2.3", "description": "cesium & mars3d library plugin for Vite", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -42,4 +42,4 @@ "mars3d-cesium": "^1.90.0", "mars3d": "^3.2.0" } -} +} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 4803c59..27a664d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -7,30 +7,28 @@ import fs from 'fs-extra'; import serveStatic from 'serve-static'; import { HtmlTagDescriptor, normalizePath, Plugin } from 'vite'; -interface VitePluginCesiumOptions { - libsPath?: String; - useUnminified?: Boolean; - npmPkgName?: String; - useMars3d?: Boolean; +interface PluginOptions { + libPath: String; + useUnminified: Boolean; + pkgName: 'mars3d-cesium' | 'cesium'; } -function vitePluginCesium( - options: VitePluginCesiumOptions = { - libsPath: 'libs', +function vitePluginEarth( + options: PluginOptions = { + libPath: 'lib', useUnminified: false, - npmPkgName: 'mars3d-cesium', - useMars3d: false + pkgName: 'cesium' } ): Plugin { - const cesiumBuildPath = `./node_modules/${options.npmPkgName}/Build`; + const cesiumBuildPath = `./node_modules/${options.pkgName}/Build`; let base = '/'; let outDir = 'dist'; let isBuild = false; - let libsPath = options.libsPath || 'libs'; + let libPath = options.libPath || 'lib'; let useUnminified = options.useUnminified || false; return { - name: 'vite-plugin-cesium', + name: 'vite-plugin-earth', config(config, { command }) { isBuild = command === 'build'; base = config.base || '/'; @@ -38,7 +36,7 @@ function vitePluginCesium( }, configureServer({ middlewares }) { middlewares.use( - `/${libsPath}/Cesium`, + `/${libPath}/Cesium`, serveStatic( normalizePath( path.join( @@ -53,24 +51,8 @@ function vitePluginCesium( if (isBuild) { try { fs.copySync( - path.join(cesiumBuildPath, 'Cesium', 'Assets'), - path.join(outDir, String(libsPath), 'Cesium', 'Assets') - ); - fs.copySync( - path.join(cesiumBuildPath, 'Cesium', 'ThirdParty'), - path.join(outDir, String(libsPath), 'Cesium', 'ThirdParty') - ); - fs.copySync( - path.join(cesiumBuildPath, 'Cesium', 'Widgets'), - path.join(outDir, String(libsPath), 'Cesium', 'Widgets') - ); - fs.copySync( - path.join(cesiumBuildPath, 'Cesium', 'Workers'), - path.join(outDir, String(libsPath), 'Cesium', 'Workers') - ); - fs.copySync( - path.join(cesiumBuildPath, 'Cesium', 'Cesium.js'), - path.join(outDir, String(libsPath), 'Cesium', 'Cesium.js') + path.join(cesiumBuildPath, 'Cesium'), + path.join(outDir, String(libPath), 'Cesium') ); } catch (e) {} } @@ -78,22 +60,22 @@ function vitePluginCesium( transformIndexHtml() { let tags: HtmlTagDescriptor[] = []; - tags.push({ - tag: 'script', - attrs: { - src: normalizePath( - path.join(base, String(libsPath), 'Cesium', 'Cesium.js') - ) - }, - injectTo: 'head' - }); tags.push({ tag: 'link', attrs: { rel: 'stylesheet', href: normalizePath( - path.join(base, String(libsPath), 'Cesium', 'Widgets/widgets.css') + path.join(base, String(libPath), 'Cesium/Widgets/widgets.css') + ) + }, + injectTo: 'head' + }); + tags.push({ + tag: 'script', + attrs: { + src: normalizePath( + path.join(base, String(libPath), 'Cesium/Cesium.js') ) }, injectTo: 'head' @@ -104,4 +86,4 @@ function vitePluginCesium( }; } -export default vitePluginCesium; +export default vitePluginEarth;