earthsdk3-assets 3.0.19 → 3.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "earthsdk3-assets",
3
- "version": "3.0.19",
3
+ "version": "3.0.20",
4
4
  "description": "地球可视化实验室 (EarthSDK&CesiumLab) https://www.bjxbsj.cn",
5
5
  "private": false,
6
6
  "type": "module",
@@ -4,7 +4,7 @@ const path = require('path');
4
4
  const IGNORE_FILES = new Set(['.assets-version', '.assets-manifest.json']);
5
5
 
6
6
  function copyAssetsToDest(assetsDir, rootDir, outDir) {
7
- const dest = path.join(outDir, 'js');
7
+ const dest = path.join(outDir, 'js', 'earthsdk3-assets');
8
8
  fs.mkdirSync(dest, { recursive: true });
9
9
 
10
10
  if (fs.existsSync(assetsDir)) {
@@ -4,7 +4,7 @@ import path from 'path';
4
4
  const IGNORE_FILES = new Set(['.assets-version', '.assets-manifest.json']);
5
5
 
6
6
  export function copyAssetsToDest(assetsDir, rootDir, outDir) {
7
- const dest = path.join(outDir, 'js');
7
+ const dest = path.join(outDir, 'js', 'earthsdk3-assets');
8
8
  fs.mkdirSync(dest, { recursive: true });
9
9
 
10
10
  if (fs.existsSync(assetsDir)) {
@@ -53,13 +53,13 @@ class EarthsdkAssetsRspackPlugin {
53
53
  'EarthsdkAssetsRspackPlugin',
54
54
  (data, cb) => {
55
55
  data.assetTags.scripts.unshift({
56
- tagName: 'script',
57
- voidTag: false,
58
- attributes: {
59
- src: '/js/earthsdk3-assets.js'
60
- },
61
- meta: { plugin: 'earthsdk-assets' }
62
- });
56
+ tagName: 'script',
57
+ voidTag: false,
58
+ attributes: {
59
+ src: '/js/earthsdk3-assets/earthsdk3-assets.js'
60
+ },
61
+ meta: { plugin: 'earthsdk-assets' }
62
+ });
63
63
  cb(null, data);
64
64
  }
65
65
  );
@@ -20,8 +20,16 @@ async function ensureAssets(assetsDir, cacheFile, manifestCacheFile) {
20
20
 
21
21
  export default function earthsdkAssetsVite(options = {}) {
22
22
  let outDir = 'dist';
23
+ let publicDir = 'public';
23
24
  const { assetsDir, cacheFile, manifestCacheFile } = getAssetsPaths(ROOT_DIR);
24
25
 
26
+ function createSymlink(src, dest) {
27
+ if (fs.existsSync(dest)) {
28
+ fs.unlinkSync(dest);
29
+ }
30
+ fs.symlinkSync(src, dest, 'junction');
31
+ }
32
+
25
33
  return {
26
34
  name: 'earthsdk-assets',
27
35
 
@@ -30,7 +38,7 @@ export default function earthsdkAssetsVite(options = {}) {
30
38
  {
31
39
  tag: 'script',
32
40
  attrs: {
33
- src: '/js/earthsdk3-assets.js'
41
+ src: '/js/earthsdk3-assets/earthsdk3-assets.js'
34
42
  },
35
43
  injectTo: 'head'
36
44
  }
@@ -39,35 +47,26 @@ export default function earthsdkAssetsVite(options = {}) {
39
47
 
40
48
  configResolved(config) {
41
49
  outDir = config.build.outDir;
50
+ publicDir = config.publicDir || 'public';
42
51
  },
43
52
 
44
53
  async configureServer(server) {
45
54
  await ensureAssets(assetsDir, cacheFile, manifestCacheFile);
46
55
 
47
- server.middlewares.use('/js', (req, res, next) => {
48
- try {
49
- const filePath = path.resolve(ROOT_DIR, '.' + decodeURIComponent(req.url));
50
- if (!fs.existsSync(filePath)) {
51
- next();
52
- return;
53
- }
54
- const ext = path.extname(filePath).slice(1).toLowerCase();
55
- const mimeTypes = {
56
- js: 'application/javascript',
57
- json: 'application/json',
58
- png: 'image/png',
59
- jpg: 'image/jpeg',
60
- jpeg: 'image/jpeg',
61
- webp: 'image/webp',
62
- glb: 'model/gltf-binary',
63
- bin: 'application/octet-stream'
64
- };
65
- res.setHeader('Content-Type', mimeTypes[ext] || 'application/octet-stream');
66
- fs.createReadStream(filePath).pipe(res);
67
- } catch (err) {
68
- next(err);
69
- }
70
- });
56
+ const publicAssetsDir = path.resolve(publicDir, 'js', 'earthsdk3-assets');
57
+ fs.mkdirSync(publicAssetsDir, { recursive: true });
58
+
59
+ const sdkSrc = path.join(ROOT_DIR, 'earthsdk3-assets.js');
60
+ if (fs.existsSync(sdkSrc)) {
61
+ createSymlink(sdkSrc, path.join(publicAssetsDir, 'earthsdk3-assets.js'));
62
+ }
63
+
64
+ const assetsDest = path.join(publicAssetsDir, 'assets');
65
+ if (fs.existsSync(assetsDir)) {
66
+ createSymlink(assetsDir, assetsDest);
67
+ }
68
+
69
+ console.log('[earthsdk-assets] 开发模式:已创建软连接到 public/js/earthsdk3-assets/');
71
70
  },
72
71
 
73
72
  async closeBundle() {
@@ -43,13 +43,13 @@ class EarthsdkAssetsWebpackPlugin {
43
43
  'EarthsdkAssetsWebpackPlugin',
44
44
  (data, cb) => {
45
45
  data.assetTags.scripts.unshift({
46
- tagName: 'script',
47
- voidTag: false,
48
- attributes: {
49
- src: '/js/earthsdk3-assets.js'
50
- },
51
- meta: { plugin: 'earthsdk-assets' }
52
- });
46
+ tagName: 'script',
47
+ voidTag: false,
48
+ attributes: {
49
+ src: '/js/earthsdk3-assets/earthsdk3-assets.js'
50
+ },
51
+ meta: { plugin: 'earthsdk-assets' }
52
+ });
53
53
  cb(null, data);
54
54
  }
55
55
  );