From a66fce36685cb854b7fe93ff399f09350a9a7664 Mon Sep 17 00:00:00 2001 From: Nshen Date: Wed, 3 Mar 2021 14:16:51 +0800 Subject: [PATCH] init --- .gitignore | 2 + package.json | 41 ++++++++++++++ src/index.ts | 49 +++++++++++++++++ tsconfig.json | 11 ++++ yarn.lock | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 247 insertions(+) create mode 100644 .gitignore create mode 100644 package.json create mode 100644 src/index.ts create mode 100644 tsconfig.json create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..76add87 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +dist \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..5193d6e --- /dev/null +++ b/package.json @@ -0,0 +1,41 @@ +{ + "name": "vite-plugin-cesium", + "version": "1.0.0", + "description": "Cesium library plugin for Vite", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "build": "tsc" + }, + "keywords": [ + "vite", + "vite-plugin", + "cesium" + ], + "author": "nshen ", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/nshen/vite-plugin-cesium" + }, + "bugs": { + "url": "https://github.com/nshen/vite-plugin-cesium/issues" + }, + "dependencies": { + "fs-extra": "^9.1.0" + }, + "devDependencies": { + "@tsconfig/node12": "^1.0.7", + "@types/fs-extra": "^9.0.8", + "@types/node": "^14.14.31", + "typescript": "^4.2.2", + "vite": "^2.0.4" + }, + "peerDependencies": { + "cesium": "^1.79.0", + "vite": "^2.0.4" + } +} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..6c27602 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,49 @@ +import path from 'path'; +import { Plugin } from 'vite'; +import fs from 'fs-extra'; + +export default function (): Plugin { + + const cesiumBuildPath = 'node_modules/cesium/Build/Cesium/'; + + return { + name: 'vite-plugin-cesium', + + async buildStart(options) { + try { + const exists = await fs.pathExists('public/cesium/Assets'); + if (!exists) { + await fs.copy(path.join(cesiumBuildPath, 'Assets'), 'public/cesium/Assets'); + await fs.copy(path.join(cesiumBuildPath, 'ThirdParty'), 'public/cesium/ThirdParty'); + await fs.copy(path.join(cesiumBuildPath, 'Workers'), 'public/cesium/Workers'); + await fs.copy(path.join(cesiumBuildPath, 'Widgets'), 'public/cesium/Widgets'); + } + + } catch (err) { + console.error('copy failed'); + } + }, + + config() { + return { + build: { + assetsInlineLimit: 0, + chunkSizeWarningLimit: 4000 + } + }; + }, + + transformIndexHtml() { + return [ + { + tag: 'link', + attrs: { rel: 'stylesheet', href: 'cesium/Widgets/widgets.css' }, + }, + { + tag: 'script', + children: 'window.CESIUM_BASE_URL = "/cesium/"' + } + ]; + }, + }; +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..14e8a21 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,11 @@ +{ + "extends": "@tsconfig/node12/tsconfig.json", + "include": [ + "src" + ], + "compilerOptions": { + "outDir": "dist", + "declaration": true, + "removeComments": true + }, +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..4c3887a --- /dev/null +++ b/yarn.lock @@ -0,0 +1,144 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@tsconfig/node12@^1.0.7": + version "1.0.7" + resolved "https://registry.npm.taobao.org/@tsconfig/node12/download/@tsconfig/node12-1.0.7.tgz#677bd9117e8164dc319987dd6ff5fc1ba6fbf18b" + integrity sha1-Z3vZEX6BZNwxmYfdb/X8G6b78Ys= + +"@types/fs-extra@^9.0.8": + version "9.0.8" + resolved "https://registry.npm.taobao.org/@types/fs-extra/download/@types/fs-extra-9.0.8.tgz#32c3c07ddf8caa5020f84b5f65a48470519f78ba" + integrity sha1-MsPAfd+MqlAg+EtfZaSEcFGfeLo= + dependencies: + "@types/node" "*" + +"@types/node@*", "@types/node@^14.14.31": + version "14.14.31" + resolved "https://registry.npm.taobao.org/@types/node/download/@types/node-14.14.31.tgz?cache=0&sync_timestamp=1613758114120&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.14.31.tgz#72286bd33d137aa0d152d47ec7c1762563d34055" + integrity sha1-cihr0z0TeqDRUtR+x8F2JWPTQFU= + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/at-least-node/download/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha1-YCzUtG6EStTv/JKoARo8RuAjjcI= + +colorette@^1.2.1: + version "1.2.2" + resolved "https://registry.npm.taobao.org/colorette/download/colorette-1.2.2.tgz?cache=0&sync_timestamp=1614259647923&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha1-y8x51emcrqLb8Q6zom/Ys+as+pQ= + +esbuild@^0.8.52: + version "0.8.54" + resolved "https://registry.npm.taobao.org/esbuild/download/esbuild-0.8.54.tgz?cache=0&sync_timestamp=1614592024973&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesbuild%2Fdownload%2Fesbuild-0.8.54.tgz#2f32ff80e95c69a0f25b799d76a27c05e2857cdf" + integrity sha1-LzL/gOlcaaDyW3mddqJ8BeKFfN8= + +fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.npm.taobao.org/fs-extra/download/fs-extra-9.1.0.tgz?cache=0&sync_timestamp=1611075555649&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-extra%2Fdownload%2Ffs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha1-WVRGDHZKjaIJS6NVS/g55rmnyG0= + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fsevents@~2.3.1: + version "2.3.2" + resolved "https://registry.npm.taobao.org/fsevents/download/fsevents-2.3.2.tgz?cache=0&sync_timestamp=1612536546156&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro= + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0= + +graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.6" + resolved "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha1-/wQLKwhTsjw9MQJ1I3BvGIXXa+4= + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y= + dependencies: + function-bind "^1.1.1" + +is-core-module@^2.2.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/is-core-module/download/is-core-module-2.2.0.tgz?cache=0&sync_timestamp=1606411557629&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-core-module%2Fdownload%2Fis-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha1-lwN+89UiJNhRY/VZeytj2a/tmBo= + dependencies: + has "^1.0.3" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.npm.taobao.org/jsonfile/download/jsonfile-6.1.0.tgz?cache=0&sync_timestamp=1604164898625&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonfile%2Fdownload%2Fjsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha1-vFWyY0eTxnnsZAMJTrE2mKbsCq4= + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +nanoid@^3.1.20: + version "3.1.20" + resolved "https://registry.npm.taobao.org/nanoid/download/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" + integrity sha1-utwmPGsdzxS3HvqoX2q0wdbPx4g= + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha1-1i27VnlAXXLEc37FhgDp3c8G0kw= + +postcss@^8.2.1: + version "8.2.6" + resolved "https://registry.npm.taobao.org/postcss/download/postcss-8.2.6.tgz#5d69a974543b45f87e464bc4c3e392a97d6be9fe" + integrity sha1-XWmpdFQ7Rfh+RkvEw+OSqX1r6f4= + dependencies: + colorette "^1.2.1" + nanoid "^3.1.20" + source-map "^0.6.1" + +resolve@^1.19.0: + version "1.20.0" + resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.20.0.tgz?cache=0&sync_timestamp=1613054898763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU= + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +rollup@^2.38.5: + version "2.40.0" + resolved "https://registry.npm.taobao.org/rollup/download/rollup-2.40.0.tgz#efc218eaede7ab590954df50f96195188999c304" + integrity sha1-78IY6u3nq1kJVN9Q+WGVGImZwwQ= + optionalDependencies: + fsevents "~2.3.1" + +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz?cache=0&sync_timestamp=1604409581245&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map%2Fdownload%2Fsource-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha1-dHIq8y6WFOnCh6jQu95IteLxomM= + +typescript@^4.2.2: + version "4.2.2" + resolved "https://registry.npm.taobao.org/typescript/download/typescript-4.2.2.tgz?cache=0&sync_timestamp=1614497564110&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftypescript%2Fdownload%2Ftypescript-4.2.2.tgz#1450f020618f872db0ea17317d16d8da8ddb8c4c" + integrity sha1-FFDwIGGPhy2w6hcxfRbY2o3bjEw= + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/universalify/download/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha1-daSYTv7cSwiXXFrrc/Uw0C3yVxc= + +vite@^2.0.4: + version "2.0.4" + resolved "https://registry.npm.taobao.org/vite/download/vite-2.0.4.tgz#063532a4139b59a067297d8ebb5960d450907a09" + integrity sha1-BjUypBObWaBnKX2Ou1lg1FCQegk= + dependencies: + esbuild "^0.8.52" + postcss "^8.2.1" + resolve "^1.19.0" + rollup "^2.38.5" + optionalDependencies: + fsevents "~2.3.1"