Parcourir la source

feat: 工程化改造

rindy il y a 3 ans
Parent
commit
6e6771c079
100 fichiers modifiés avec 227 ajouts et 0 suppressions
  1. 27 0
      .gitignore
  2. 22 0
      babel.env.config.js
  3. 13 0
      dist/index.html
  4. 16 0
      dist/js/index.js
  5. 1 0
      dist/js/index.js.map
  6. 0 0
      dist/libs/Oimo.js
  7. 0 0
      dist/libs/ammo.js
  8. 0 0
      dist/libs/babylon.gui.min.js
  9. 0 0
      dist/libs/babylon.gui.min.js.map
  10. 0 0
      dist/libs/babylon.inspector.bundle.js
  11. 0 0
      dist/libs/babylon.inspector.bundle.js.map
  12. 0 0
      dist/libs/babylon.js
  13. 0 0
      dist/libs/babylon.js.map
  14. 0 0
      dist/libs/babylonjs.loaders.js
  15. 0 0
      dist/libs/babylonjs.loaders.js.map
  16. 0 0
      dist/libs/babylonjs.materials.min.js
  17. 0 0
      dist/libs/babylonjs.materials.min.js.map
  18. 0 0
      dist/libs/babylonjs.postProcess.min.js
  19. 0 0
      dist/libs/babylonjs.postProcess.min.js.map
  20. 0 0
      dist/libs/babylonjs.proceduralTextures.min.js
  21. 0 0
      dist/libs/babylonjs.proceduralTextures.min.js.map
  22. 0 0
      dist/libs/babylonjs.serializers.min.js
  23. 0 0
      dist/libs/babylonjs.serializers.min.js.map
  24. 0 0
      dist/libs/cannon.js
  25. 0 0
      dist/libs/crypto-js.js
  26. 0 0
      dist/libs/dat.gui.min.js
  27. 0 0
      dist/libs/earcut.min.js
  28. 0 0
      dist/libs/jquery-1.10.2.min.js
  29. 0 0
      dist/libs/md5.js
  30. 0 0
      dist/libs/recast.js
  31. 0 0
      dist/libs/socket.2.3.js
  32. 0 0
      dist/libs/socket.io.js.map
  33. 46 0
      package.json
  34. 14 0
      readme.md
  35. 67 0
      rollup.config.js
  36. 21 0
      scripts/build.js
  37. 0 0
      src/ActionsHandler.js
  38. 0 0
      src/AxiosCanceler.js
  39. 0 0
      src/BaseTable.js
  40. 0 0
      src/BreathPoint.js
  41. 0 0
      src/Broadcast.js
  42. 0 0
      src/Camera.js
  43. 0 0
      src/CircularArray.js
  44. 0 0
      src/DataStorage.js
  45. 0 0
      src/Debug.js
  46. 0 0
      src/EngineProxy.js
  47. 0 0
      src/EventsController.js
  48. 0 0
      src/EventsManager.js
  49. 0 0
      src/Heartbeat.js
  50. 0 0
      src/Http.js
  51. 0 0
      src/JoyStick.js
  52. 0 0
      src/Logger.js
  53. 0 0
      src/ModelManager.js
  54. 0 0
      src/ModelTable.js
  55. 0 0
      src/NetworkController.js
  56. 0 0
      src/NetworkMonitor.js
  57. 0 0
      src/Panorama.js
  58. 0 0
      src/PathManager.js
  59. 0 0
      src/Pool.js
  60. 0 0
      src/PoolObject.js
  61. 0 0
      src/Preload.js
  62. 0 0
      src/Queue.js
  63. 0 0
      src/Reporter.js
  64. 0 0
      src/RotationEvent.js
  65. 0 0
      src/Rtcp.js
  66. 0 0
      src/RunTimeArray.js
  67. 0 0
      src/Signal.js
  68. 0 0
      src/Socket.js
  69. 0 0
      src/StaticMeshEvent.js
  70. 0 0
      src/Stats.js
  71. 0 0
      src/Stream.js
  72. 0 0
      src/TV.js
  73. 0 0
      src/Timeout.js
  74. 0 0
      src/Workers.js
  75. 0 0
      src/XAnimationController.js
  76. 0 0
      src/XAvatar.js
  77. 0 0
      src/XAvatarBillboardComponent.js
  78. 0 0
      src/XAvatarComopnent.js
  79. 0 0
      src/XAvatarLoader.js
  80. 0 0
      src/XAvatarManager.js
  81. 0 0
      src/XBillboard.js
  82. 0 0
      src/XBillboardManager.js
  83. 0 0
      src/XBreathPointManager.js
  84. 0 0
      src/XCameraComponent.js
  85. 0 0
      src/XDecal.js
  86. 0 0
      src/XDecalManager.js
  87. 0 0
      src/XDecalMaterial.js
  88. 0 0
      src/XEngineRunTimeStats.js
  89. 0 0
      src/XLightManager.js
  90. 0 0
      src/XMaterialComponent.js
  91. 0 0
      src/XParticleManager.js
  92. 0 0
      src/XRain.js
  93. 0 0
      src/XSceneManager.js
  94. 0 0
      src/XSequence.js
  95. 0 0
      src/XSpriteManager.js
  96. 0 0
      src/XStateMachine.js
  97. 0 0
      src/XStaticMesh.js
  98. 0 0
      src/XStaticMeshComponent.js
  99. 0 0
      src/XStaticMeshFromOneGltf.js
  100. 0 0
      XStats.js

+ 27 - 0
.gitignore

@@ -0,0 +1,27 @@
+.DS_Store
+node_modules
+out
+better-docs
+better-docs/**
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+report*.json
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+*.bak
+*.log
+bk

+ 22 - 0
babel.env.config.js

@@ -0,0 +1,22 @@
+export default function (env) {
+    return {
+        babelrc: false,
+        exclude: ['node_modules/**', /core-js/],
+        presets: [
+            [
+                '@babel/preset-env',
+                {
+                    modules: false,
+                },
+            ],
+        ],
+        plugins: [
+            ['@babel/plugin-transform-runtime'],
+            ['@babel/plugin-proposal-decorators', { legacy: true }],
+            ['@babel/plugin-proposal-class-properties', { loose: true }],
+            ['@babel/plugin-proposal-private-methods', { loose: true }],
+            ['@babel/plugin-proposal-private-property-in-object', { loose: true }],
+        ],
+        babelHelpers: 'runtime',
+    }
+}

+ 13 - 0
dist/index.html

@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+   
+</head>
+<body>
+    <script src="js/index.js"></script>
+</body>
+</html>

+ 16 - 0
dist/js/index.js

@@ -0,0 +1,16 @@
+/**
+* Name: Metaverse
+* Date: 2022/4/8
+* Author: https://www.4dkankan.com
+* Copyright © 2022 4DAGE Co., Ltd. All rights reserved.
+* Licensed under the GLP license
+*/
+(function (factory) {
+	typeof define === 'function' && define.amd ? define(factory) :
+	factory();
+})((function () { 'use strict';
+
+	alert(2);
+
+}));
+//# sourceMappingURL=index.js.map

+ 1 - 0
dist/js/index.js.map

@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sources":["../../src/index.js"],"sourcesContent":["alert(2)"],"names":["alert"],"mappings":";;;;;;;;;;;;CAAAA,KAAK,CAAC,CAAD,CAAL;;;;;;"}

libs/Oimo.js → dist/libs/Oimo.js


libs/ammo.js → dist/libs/ammo.js


libs/babylon.gui.min.js → dist/libs/babylon.gui.min.js


libs/babylon.gui.min.js.map → dist/libs/babylon.gui.min.js.map


libs/babylon.inspector.bundle.js → dist/libs/babylon.inspector.bundle.js


libs/babylon.inspector.bundle.js.map → dist/libs/babylon.inspector.bundle.js.map


libs/babylon.js → dist/libs/babylon.js


libs/babylon.js.map → dist/libs/babylon.js.map


libs/babylonjs.loaders.js → dist/libs/babylonjs.loaders.js


libs/babylonjs.loaders.js.map → dist/libs/babylonjs.loaders.js.map


libs/babylonjs.materials.min.js → dist/libs/babylonjs.materials.min.js


libs/babylonjs.materials.min.js.map → dist/libs/babylonjs.materials.min.js.map


libs/babylonjs.postProcess.min.js → dist/libs/babylonjs.postProcess.min.js


libs/babylonjs.postProcess.min.js.map → dist/libs/babylonjs.postProcess.min.js.map


libs/babylonjs.proceduralTextures.min.js → dist/libs/babylonjs.proceduralTextures.min.js


libs/babylonjs.proceduralTextures.min.js.map → dist/libs/babylonjs.proceduralTextures.min.js.map


libs/babylonjs.serializers.min.js → dist/libs/babylonjs.serializers.min.js


libs/babylonjs.serializers.min.js.map → dist/libs/babylonjs.serializers.min.js.map


libs/cannon.js → dist/libs/cannon.js


libs/crypto-js.js → dist/libs/crypto-js.js


libs/dat.gui.min.js → dist/libs/dat.gui.min.js


libs/earcut.min.js → dist/libs/earcut.min.js


libs/jquery-1.10.2.min.js → dist/libs/jquery-1.10.2.min.js


libs/md5.js → dist/libs/md5.js


libs/recast.js → dist/libs/recast.js


libs/socket.2.3.js → dist/libs/socket.2.3.js


libs/socket.io.js.map → dist/libs/socket.io.js.map


+ 46 - 0
package.json

@@ -0,0 +1,46 @@
+{
+  "name": "@kankan/sdk",
+  "private": true,
+  "version": "4.0.37",
+  "description": "> TODO: description",
+  "author": "https://www.4dkankan.com",
+  "banner": "/**\r\n* Name: Metaverse\r\n* Date: ${date}\r\n* Author: ${author}\r\n* Copyright © ${year} 4DAGE Co., Ltd. All rights reserved.\r\n* Licensed under the GLP license\r\n*/",
+  "homepage": "",
+  "license": "GLP",
+  "main": "index.js",
+  "files": [],
+  "scripts": {
+    "dev": "node --no-warnings ./scripts/build.js",
+    "build": "node --no-warnings ./scripts/build.js --env=production",
+    "serve": "http-server ./dist -p 8088 -c 0 -P http://192.168.0.47 --cors",
+    "start": "npm-run-all --parallel serve dev"
+  },
+  "dependencies": {},
+  "devDependencies": {
+    "@babel/core": "^7.13.14",
+    "@babel/plugin-proposal-class-properties": "^7.13.0",
+    "@babel/plugin-proposal-decorators": "^7.13.5",
+    "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+    "@babel/plugin-syntax-import-meta": "^7.10.4",
+    "@babel/plugin-transform-runtime": "^7.13.10",
+    "@babel/preset-env": "^7.13.12",
+    "@babel/runtime-corejs3": "^7.13.17",
+    "@rollup/plugin-alias": "^3.1.2",
+    "@rollup/plugin-babel": "^5.3.0",
+    "@rollup/plugin-buble": "^0.21.3",
+    "@rollup/plugin-commonjs": "^18.0.0",
+    "@rollup/plugin-json": "^4.1.0",
+    "@rollup/plugin-node-resolve": "^11.2.1",
+    "@rollup/plugin-replace": "^2.4.2",
+    "chalk": "^4.1.0",
+    "http-server": "^14.0.0",
+    "minimist": "^1.2.5",
+    "npm-run-all": "^4.1.5",
+    "rollup": "^2.44.0",
+    "rollup-plugin-terser": "^7.0.2",
+    "execa": "^5.0.0"
+  },
+  "browserslist": [
+    "iOS 9"
+  ]
+}

+ 14 - 0
readme.md

@@ -0,0 +1,14 @@
+# 开发流程说明
+
+## 安装 **yarn** 已安装过的不需要执行
+```
+npm install yarn -g
+```
+
+## 初始化项目
+```
+yarn install
+```
+
+## 启动
+yarn start

+ 67 - 0
rollup.config.js

@@ -0,0 +1,67 @@
+import path from 'path'
+import replace from '@rollup/plugin-replace'
+import resolveNode from '@rollup/plugin-node-resolve'
+import commonjs from '@rollup/plugin-commonjs'
+import babel from '@rollup/plugin-babel'
+import babelEnvConfig from './babel.env.config'
+import { terser } from 'rollup-plugin-terser'
+
+const pkg = require(`./package.json`)
+const version = pkg.version
+
+const isProd = process.env.NODE_ENV === 'production'
+const dist = file => path.resolve('dist/js/' + file)
+
+function createReplacePlugin() {
+    const replacements = {
+        __COMMIT__: `"${process.env.COMMIT}"`,
+        __VERSION__: `"${version}"`,
+        __ENV__: `"${process.env.NODE_ENV}"`,
+        __PROD__: isProd,
+        __DEV__: !isProd,
+    }
+    Object.keys(replacements).forEach(key => {
+        if (key in process.env) {
+            replacements[key] = process.env[key]
+        }
+    })
+    return replace({
+        values: replacements,
+        preventAssignment: true,
+    })
+}
+
+const sdk_plugins = [
+    resolveNode({
+        mainFields: ['jsnext', 'main'],
+        preferBuiltins: true,
+        browser: true,
+    }),
+    babel(babelEnvConfig()),
+    commonjs(),
+    createReplacePlugin()
+]
+
+if (isProd) {
+    sdk_plugins.push(terser())
+}
+
+export default [
+    {
+        input: 'src/index.js',
+        //external: ['three'],
+        output: [
+            {
+                globals: {
+                   // three: 'THREE',
+                },
+                file: dist('index.js'),
+                format: 'umd',
+                name: 'Metaverse',
+                sourcemap: !isProd,
+                banner: pkg.banner.replace('${date}', new Date().toLocaleDateString()).replace('${author}', pkg.author).replace('${year}', new Date().getFullYear()),
+            },
+        ],
+        plugins: sdk_plugins,
+    },
+]

+ 21 - 0
scripts/build.js

@@ -0,0 +1,21 @@
+/*
+ * @Author: Rindy
+ * @Date: 2021-04-01 09:34:54
+ * @LastEditors: Rindy
+ * @LastEditTime: 2021-04-30 14:20:31
+ * @Description: 注释
+ */
+const execa = require('execa')
+const args = require('minimist')(process.argv.slice(2))
+const formats = args.formats || args.f
+const sourceMap = args.sourcemap || args.s
+const env = args.env || 'development'
+let startup = '-wc'
+
+if (env != 'development') {
+    startup = '-c'
+}
+
+execa('rollup', [startup, '--environment', [`NODE_ENV:${env}`, `FORMATS:${formats || 'esm-browser'}`, sourceMap ? `SOURCE_MAP:true` : ``].filter(Boolean).join(',')], {
+    stdio: 'inherit',
+})

ActionsHandler.js → src/ActionsHandler.js


AxiosCanceler.js → src/AxiosCanceler.js


BaseTable.js → src/BaseTable.js


BreathPoint.js → src/BreathPoint.js


Broadcast.js → src/Broadcast.js


Camera.js → src/Camera.js


CircularArray.js → src/CircularArray.js


DataStorage.js → src/DataStorage.js


Debug.js → src/Debug.js


EngineProxy.js → src/EngineProxy.js


EventsController.js → src/EventsController.js


EventsManager.js → src/EventsManager.js


Heartbeat.js → src/Heartbeat.js


Http.js → src/Http.js


JoyStick.js → src/JoyStick.js


Logger.js → src/Logger.js


ModelManager.js → src/ModelManager.js


ModelTable.js → src/ModelTable.js


NetworkController.js → src/NetworkController.js


NetworkMonitor.js → src/NetworkMonitor.js


Panorama.js → src/Panorama.js


PathManager.js → src/PathManager.js


Pool.js → src/Pool.js


PoolObject.js → src/PoolObject.js


Preload.js → src/Preload.js


Queue.js → src/Queue.js


Reporter.js → src/Reporter.js


RotationEvent.js → src/RotationEvent.js


Rtcp.js → src/Rtcp.js


RunTimeArray.js → src/RunTimeArray.js


Signal.js → src/Signal.js


Socket.js → src/Socket.js


StaticMeshEvent.js → src/StaticMeshEvent.js


Stats.js → src/Stats.js


Stream.js → src/Stream.js


TV.js → src/TV.js


Timeout.js → src/Timeout.js


Workers.js → src/Workers.js


XAnimationController.js → src/XAnimationController.js


XAvatar.js → src/XAvatar.js


XAvatarBillboardComponent.js → src/XAvatarBillboardComponent.js


XAvatarComopnent.js → src/XAvatarComopnent.js


XAvatarLoader.js → src/XAvatarLoader.js


XAvatarManager.js → src/XAvatarManager.js


XBillboard.js → src/XBillboard.js


XBillboardManager.js → src/XBillboardManager.js


XBreathPointManager.js → src/XBreathPointManager.js


XCameraComponent.js → src/XCameraComponent.js


XDecal.js → src/XDecal.js


XDecalManager.js → src/XDecalManager.js


XDecalMaterial.js → src/XDecalMaterial.js


XEngineRunTimeStats.js → src/XEngineRunTimeStats.js


XLightManager.js → src/XLightManager.js


XMaterialComponent.js → src/XMaterialComponent.js


XParticleManager.js → src/XParticleManager.js


XRain.js → src/XRain.js


XSceneManager.js → src/XSceneManager.js


XSequence.js → src/XSequence.js


XSpriteManager.js → src/XSpriteManager.js


XStateMachine.js → src/XStateMachine.js


XStaticMesh.js → src/XStaticMesh.js


XStaticMeshComponent.js → src/XStaticMeshComponent.js


XStaticMeshFromOneGltf.js → src/XStaticMeshFromOneGltf.js


+ 0 - 0
XStats.js


Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff