pure-admin / vue-pure-admin

全面ESM+Vue3+Vite+Element-Plus+TypeScript编写的一款后台管理系统(兼容移动端)
https://pure-admin.github.io/vue-pure-admin
MIT License
16.49k stars 3.1k forks source link

无法实现代码混淆 #1101

Closed libra1010 closed 7 months ago

libra1010 commented 7 months ago

描述问题 (Describe the problem)

引入了 rollup-plugin-terser 插件 以及自己编写了 对应的插件 均无法实现代码混淆功能,是否和某个插件有冲突?

export function terserTsPlugin(): Plugin { return { name: 'terserTsPlugin', // 插件名称 async transform(code, id) { if (id.endsWith('.ts') || id.endsWith('.tsx')) { const result = ts.transpileModule(code, { compilerOptions: { target: ts.ScriptTarget.ES2015, // 设置目标为ES2015以便Terser能够正确地处理代码 module: ts.ModuleKind.ESNext, // 设置模块类型为ESNext jsx: ts.JsxEmit.React, // 如果有TSX文件,需要指定对应的选项 strict: false, // 根据您的项目需求启用不同的strict选项 }, });

            const minified = await minify(result.outputText, {
                mangle: {
                    properties: {
                        keep_quoted: true,
                    },
                },
            });

            if (minified.error) {
                console.error('Terser error:', minified.error);
                return code;
            }
            return minified.code;
        }
    },
}

}

如何复现该问题 (How to reproduce the problem)

引入 rollup-plugin-terser 执行 pnpm build

操作系统和浏览器信息 (Operating system and browser information)

No response

验证 (Verify)

xiaoxian521 commented 7 months ago

目前很忙 只解决确定性bug 请自行研究