使用 laravel 混合混淆代码

obfuscate code with laravel mix

我有一个带有 laravel 和 vuejs 的网络应用程序。 我使用 laravel-mix,在我的 webpack.mix.js 中我有:

const { mix } = require('laravel-mix');
mix.sourceMaps();
mix.js('resources/assets/js/app.js', 'public/js')
   .sass('resources/assets/sass/app.scss', 'public/css');

现在我要混淆代码,所以我所有的组件,我如何使用 laravel-mix 来做到这一点?

npm run dev 不会丑化/缩小您的代码,但 npm run production 会。

如果您想使用 uglify...

laravel mix 只是 webpack 的包装器。所以你可以在这里安装 UglifyWepackPlugin https://webpack.js.org/plugins/uglifyjs-webpack-plugin/

之后,您可以编辑 mix.webpackConfig 以使用该插件,详见此处:https://laravel.com/docs/5.5/mix#custom-webpack-configuration

安装https://github.com/javascript-obfuscator/javascript-obfuscator and https://github.com/javascript-obfuscator/webpack-obfuscator。 之后你需要在 webpack 配置中包含 de 插件,你可以在 webpack.mix.js 文件中添加下一个代码。

let mix = require('laravel-mix');
let JavaScriptObfuscator = require('webpack-obfuscator');

mix.webpackConfig({
    plugins: [
        new JavaScriptObfuscator ({
            rotateUnicodeArray: true
        }, ['excluded_bundle_name.js'])
    ],
});

mix.js('resources/assets/js/app.js', 'public/js');

之后你所有的 js 文件都会被混淆。