This is not decorator problem but mangle terser options, you can avoid mangle: false and compress keep_classnames: true and keep_fnames: true.
- run
pnpm i
- run
npm run build:watch
in subprocess. - run
./bin/run.js
switching loader 'babel-loader' and 'swc-loader',
tsconfig.json
{
"compilerOptions": {
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"module": "commonjs",
"rootDir": "./src",
"declaration": true,
"declarationMap": true,
"emitDeclarationOnly": true,
"outDir": "./dist",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"skipLibCheck": true
},
"include": ["./src"]
}
babel.config.js
module.exports = {
"presets": [
[
"@babel/preset-typescript"
]
],
"plugins": [
"babel-plugin-transform-typescript-metadata",
["@babel/plugin-proposal-decorators", { "legacy": true }],
["@babel/plugin-proposal-class-properties", { "loose": true }],
]
}
result:
[
{
"meta": {
"value": "A"
},
"instance": {},
"params": [
{
"meta": {
"value": "a"
},
"discoveredMethod": {
"methodName": "method",
"parentClass": {
"name": "A",
"instance": {},
"parentModule": {
"name": "AppModule",
"instance": {}
}
}
}
}
]
},
{
"meta": {
"value": "B"
},
"instance": {},
"params": [
{
"meta": {},
"discoveredMethod": {
"methodName": "method",
"parentClass": {
"name": "B",
"instance": {},
"parentModule": {
"name": "AppModule",
"instance": {}
}
}
}
}
]
}
]
{
"$schema": "http://json.schemastore.org/swcrc",
"module": {
"type": "commonjs",
"strict": false,
"strictMode": true,
"lazy": false,
"noInterop": false
},
"jsc": {
"externalHelpers": true,
"parser": {
"syntax": "typescript",
"tsx": false,
"decorators": true,
"dynamicImport": false
},
"transform": {
"decoratorMetadata": true,
"legacyDecorator": true
},
"minify": {
"compress": {
"unused": true
},
"mangle": true
}
},
"minify": true
}
result:
[
{
"meta": {
"value": "A"
},
"instance": {},
"params": [
{
"meta": {
"value": "a"
},
"discoveredMethod": {
"methodName": "method",
"parentClass": {
"name": "t",
"instance": {},
"parentModule": {
"name": "e",
"instance": {}
}
}
}
},
{
"meta": {},
"discoveredMethod": {
"methodName": "method",
"parentClass": {
"name": "t",
"instance": {},
"parentModule": {
"name": "e",
"instance": {}
}
}
}
}
]
},
{
"meta": {
"value": "B"
},
"instance": {},
"params": [
{
"meta": {
"value": "a"
},
"discoveredMethod": {
"methodName": "method",
"parentClass": {
"name": "t",
"instance": {},
"parentModule": {
"name": "e",
"instance": {}
}
}
}
},
{
"meta": {},
"discoveredMethod": {
"methodName": "method",
"parentClass": {
"name": "t",
"instance": {},
"parentModule": {
"name": "e",
"instance": {}
}
}
}
}
]
}
]