112 lines
2.0 KiB
JavaScript
112 lines
2.0 KiB
JavaScript
const resolve = require('@rollup/plugin-node-resolve');
|
||
const commonjs = require('@rollup/plugin-commonjs');
|
||
const terser = require('@rollup/plugin-terser');
|
||
const dts = require('rollup-plugin-dts').default;
|
||
const { readFileSync } = require('fs');
|
||
|
||
const pkg = JSON.parse(readFileSync('./package.json', 'utf8'));
|
||
|
||
const banner = `/**
|
||
* @esengine/network-server v${pkg.version}
|
||
* ECS网络层服务端实现
|
||
*
|
||
* @author ${pkg.author}
|
||
* @license ${pkg.license}
|
||
*/`;
|
||
|
||
// 外部依赖,不打包进bundle (Node.js环境,保持依赖外部化)
|
||
const external = [
|
||
'@esengine/ecs-framework',
|
||
'@esengine/network-shared',
|
||
'ws',
|
||
'reflect-metadata',
|
||
'http',
|
||
'https',
|
||
'crypto',
|
||
'events',
|
||
'stream',
|
||
'util',
|
||
'fs',
|
||
'path'
|
||
];
|
||
|
||
const commonPlugins = [
|
||
resolve({
|
||
preferBuiltins: true,
|
||
browser: false
|
||
}),
|
||
commonjs({
|
||
include: /node_modules/
|
||
})
|
||
];
|
||
|
||
module.exports = [
|
||
// ES模块构建
|
||
{
|
||
input: 'bin/index.js',
|
||
output: {
|
||
file: 'dist/index.mjs',
|
||
format: 'es',
|
||
banner,
|
||
sourcemap: true,
|
||
exports: 'named'
|
||
},
|
||
plugins: [
|
||
...commonPlugins,
|
||
terser({
|
||
format: {
|
||
comments: /^!/
|
||
}
|
||
})
|
||
],
|
||
external,
|
||
treeshake: {
|
||
moduleSideEffects: false,
|
||
propertyReadSideEffects: false,
|
||
unknownGlobalSideEffects: false
|
||
}
|
||
},
|
||
|
||
// CommonJS构建 (Node.js主要格式)
|
||
{
|
||
input: 'bin/index.js',
|
||
output: {
|
||
file: 'dist/index.cjs',
|
||
format: 'cjs',
|
||
banner,
|
||
sourcemap: true,
|
||
exports: 'named'
|
||
},
|
||
plugins: [
|
||
...commonPlugins,
|
||
terser({
|
||
format: {
|
||
comments: /^!/
|
||
}
|
||
})
|
||
],
|
||
external,
|
||
treeshake: {
|
||
moduleSideEffects: false
|
||
}
|
||
},
|
||
|
||
// 类型定义构建
|
||
{
|
||
input: 'bin/index.d.ts',
|
||
output: {
|
||
file: 'dist/index.d.ts',
|
||
format: 'es',
|
||
banner: `/**
|
||
* @esengine/network-server v${pkg.version}
|
||
* TypeScript definitions
|
||
*/`
|
||
},
|
||
plugins: [
|
||
dts({
|
||
respectExternal: true
|
||
})
|
||
],
|
||
external
|
||
}
|
||
]; |