feat: 1.2.3版本发布

This commit is contained in:
小冰cc 2022-07-14 14:51:49 +08:00
parent 2ec92f0020
commit 446c843f8f
3 changed files with 72 additions and 66 deletions

View File

@ -1,6 +1,6 @@
# ⚡ vite-plugin-earth # ⚡ 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 [`cesium`]: https://github.com/CesiumGS/cesium
[`mars3d`]: https://mars3d.cn/ [`mars3d`]: https://mars3d.cn/
@ -8,8 +8,7 @@ Easily set up a [`Cesium`] & [`mars3d`] project in [`Vite`].
## Install ## Install
```bash ```bash
npm i cesium vite-plugin-earth vite -D npm i vite-plugin-earth -D
# yarn add cesium vite-plugin-earth vite -D
``` ```
## Usage ## Usage
@ -18,28 +17,53 @@ add this plugin to `vite.config.js`
```js ```js
import { defineConfig } from 'vite'; import { defineConfig } from 'vite';
import earthPlugin from 'vite-plugin-earth'; import earth from 'vite-plugin-earth';
export default defineConfig({ export default defineConfig({
plugins: [earthPlugin()] plugins: [earth()]
}); });
``` ```
add dev command to `package.json`
```json
"scripts": {
"dev": "vite",
"build": "vite build"
}
```
run:
`yarn dev`
## Options ## 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` - **Type :** `boolean`
- **Default :** `false` - **Default :** `false`
@ -48,10 +72,10 @@ Default copy min cesium file to dist. if `true` will rebuild cesium from source.
```js ```js
import { defineConfig } from 'vite'; import { defineConfig } from 'vite';
import earthPlugin from 'vite-plugin-earth'; import earth from 'vite-plugin-earth';
export default defineConfig({ export default defineConfig({
plugins: [ plugins: [
earthPlugin({ earth({
rebuildCesium: true rebuildCesium: true
}) })
] ]

View File

@ -1,6 +1,6 @@
{ {
"name": "vite-plugin-earth", "name": "vite-plugin-earth",
"version": "1.1.0", "version": "1.2.3",
"description": "cesium & mars3d library plugin for Vite", "description": "cesium & mars3d library plugin for Vite",
"main": "dist/index.js", "main": "dist/index.js",
"types": "dist/index.d.ts", "types": "dist/index.d.ts",
@ -42,4 +42,4 @@
"mars3d-cesium": "^1.90.0", "mars3d-cesium": "^1.90.0",
"mars3d": "^3.2.0" "mars3d": "^3.2.0"
} }
} }

View File

@ -7,30 +7,28 @@ import fs from 'fs-extra';
import serveStatic from 'serve-static'; import serveStatic from 'serve-static';
import { HtmlTagDescriptor, normalizePath, Plugin } from 'vite'; import { HtmlTagDescriptor, normalizePath, Plugin } from 'vite';
interface VitePluginCesiumOptions { interface PluginOptions {
libsPath?: String; libPath: String;
useUnminified?: Boolean; useUnminified: Boolean;
npmPkgName?: String; pkgName: 'mars3d-cesium' | 'cesium';
useMars3d?: Boolean;
} }
function vitePluginCesium( function vitePluginEarth(
options: VitePluginCesiumOptions = { options: PluginOptions = {
libsPath: 'libs', libPath: 'lib',
useUnminified: false, useUnminified: false,
npmPkgName: 'mars3d-cesium', pkgName: 'cesium'
useMars3d: false
} }
): Plugin { ): Plugin {
const cesiumBuildPath = `./node_modules/${options.npmPkgName}/Build`; const cesiumBuildPath = `./node_modules/${options.pkgName}/Build`;
let base = '/'; let base = '/';
let outDir = 'dist'; let outDir = 'dist';
let isBuild = false; let isBuild = false;
let libsPath = options.libsPath || 'libs'; let libPath = options.libPath || 'lib';
let useUnminified = options.useUnminified || false; let useUnminified = options.useUnminified || false;
return { return {
name: 'vite-plugin-cesium', name: 'vite-plugin-earth',
config(config, { command }) { config(config, { command }) {
isBuild = command === 'build'; isBuild = command === 'build';
base = config.base || '/'; base = config.base || '/';
@ -38,7 +36,7 @@ function vitePluginCesium(
}, },
configureServer({ middlewares }) { configureServer({ middlewares }) {
middlewares.use( middlewares.use(
`/${libsPath}/Cesium`, `/${libPath}/Cesium`,
serveStatic( serveStatic(
normalizePath( normalizePath(
path.join( path.join(
@ -53,24 +51,8 @@ function vitePluginCesium(
if (isBuild) { if (isBuild) {
try { try {
fs.copySync( fs.copySync(
path.join(cesiumBuildPath, 'Cesium', 'Assets'), path.join(cesiumBuildPath, 'Cesium'),
path.join(outDir, String(libsPath), 'Cesium', 'Assets') path.join(outDir, String(libPath), 'Cesium')
);
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')
); );
} catch (e) {} } catch (e) {}
} }
@ -78,22 +60,22 @@ function vitePluginCesium(
transformIndexHtml() { transformIndexHtml() {
let tags: HtmlTagDescriptor[] = []; let tags: HtmlTagDescriptor[] = [];
tags.push({
tag: 'script',
attrs: {
src: normalizePath(
path.join(base, String(libsPath), 'Cesium', 'Cesium.js')
)
},
injectTo: 'head'
});
tags.push({ tags.push({
tag: 'link', tag: 'link',
attrs: { attrs: {
rel: 'stylesheet', rel: 'stylesheet',
href: normalizePath( 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' injectTo: 'head'
@ -104,4 +86,4 @@ function vitePluginCesium(
}; };
} }
export default vitePluginCesium; export default vitePluginEarth;