更新支持es5环境

This commit is contained in:
YHH
2025-09-04 16:26:29 +08:00
parent 042ded37d2
commit 168e028098
5 changed files with 1685 additions and 51 deletions

1647
package-lock.json generated

File diff suppressed because it is too large Load Diff

18
packages/core/.babelrc Normal file
View File

@@ -0,0 +1,18 @@
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"browsers": ["> 1%", "last 2 versions", "ie >= 11"]
},
"modules": false,
"loose": true
}
]
],
"plugins": [
"@babel/plugin-transform-optional-chaining",
"@babel/plugin-transform-nullish-coalescing-operator"
]
}

View File

@@ -62,6 +62,8 @@ function generatePackageJson() {
'index.cjs.map', 'index.cjs.map',
'index.umd.js', 'index.umd.js',
'index.umd.js.map', 'index.umd.js.map',
'index.es5.js',
'index.es5.js.map',
'index.d.ts', 'index.d.ts',
'README.md', 'README.md',
'LICENSE', 'LICENSE',
@@ -113,7 +115,7 @@ function copyFiles() {
function showBuildResults() { function showBuildResults() {
const distDir = './dist'; const distDir = './dist';
const files = ['index.mjs', 'index.cjs', 'index.umd.js', 'index.d.ts']; const files = ['index.mjs', 'index.cjs', 'index.umd.js', 'index.es5.js', 'index.d.ts'];
console.log('\n📊 构建结果:'); console.log('\n📊 构建结果:');
files.forEach(file => { files.forEach(file => {

View File

@@ -1,6 +1,6 @@
{ {
"name": "@esengine/ecs-framework", "name": "@esengine/ecs-framework",
"version": "2.1.45", "version": "2.1.46",
"description": "用于Laya、Cocos Creator等JavaScript游戏引擎的高性能ECS框架", "description": "用于Laya、Cocos Creator等JavaScript游戏引擎的高性能ECS框架",
"main": "bin/index.js", "main": "bin/index.js",
"types": "bin/index.d.ts", "types": "bin/index.d.ts",
@@ -51,6 +51,11 @@
"author": "yhh", "author": "yhh",
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
"@babel/core": "^7.28.3",
"@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1",
"@babel/plugin-transform-optional-chaining": "^7.27.1",
"@babel/preset-env": "^7.28.3",
"@rollup/plugin-babel": "^6.0.4",
"@rollup/plugin-commonjs": "^28.0.3", "@rollup/plugin-commonjs": "^28.0.3",
"@rollup/plugin-node-resolve": "^16.0.1", "@rollup/plugin-node-resolve": "^16.0.1",
"@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-terser": "^0.4.4",

View File

@@ -1,6 +1,7 @@
const resolve = require('@rollup/plugin-node-resolve'); const resolve = require('@rollup/plugin-node-resolve');
const commonjs = require('@rollup/plugin-commonjs'); const commonjs = require('@rollup/plugin-commonjs');
const terser = require('@rollup/plugin-terser'); const terser = require('@rollup/plugin-terser');
const babel = require('@rollup/plugin-babel');
const dts = require('rollup-plugin-dts').default; const dts = require('rollup-plugin-dts').default;
const { readFileSync } = require('fs'); const { readFileSync } = require('fs');
@@ -23,6 +24,11 @@ const commonPlugins = [
}), }),
commonjs({ commonjs({
include: /node_modules/ include: /node_modules/
}),
babel({
babelHelpers: 'bundled',
exclude: 'node_modules/**',
extensions: ['.js', '.ts']
}) })
]; ];
@@ -102,6 +108,60 @@ module.exports = [
} }
}, },
// ES5兼容构建 - 适用于只支持ES5语法的JavaScript环境
{
input: 'bin/index.js',
output: {
file: 'dist/index.es5.js',
format: 'cjs',
banner: banner + '\n// ES5 Compatible Build for legacy JavaScript environments',
sourcemap: true,
exports: 'named'
},
plugins: [
resolve({
browser: true,
preferBuiltins: false
}),
commonjs({
include: /node_modules/
}),
babel({
babelHelpers: 'bundled',
exclude: 'node_modules/**',
extensions: ['.js', '.ts'],
presets: [
['@babel/preset-env', {
targets: {
browsers: ['ie >= 9', 'chrome >= 30', 'firefox >= 30', 'safari >= 8']
},
modules: false,
loose: true,
forceAllTransforms: true
}]
],
plugins: [
'@babel/plugin-transform-optional-chaining',
'@babel/plugin-transform-nullish-coalescing-operator'
]
}),
terser({
ecma: 5,
format: {
comments: /^!/
},
compress: {
drop_console: false,
drop_debugger: false
}
})
],
external: [],
treeshake: {
moduleSideEffects: false
}
},
// 类型定义构建 // 类型定义构建
{ {
input: 'bin/index.d.ts', input: 'bin/index.d.ts',