uglifyjs-webpack-plugin混淆没有效果
时间: 2023-06-29 11:11:16 浏览: 52
如果 `uglifyjs-webpack-plugin` 没有正确地混淆你的代码,可能有一些原因:
1. 可能你的代码中有些部分是不应该被混淆的,例如一些全局变量或者函数名。你可以尝试通过设置 `uglifyOptions` 中的 `exclude` 属性来排除这些部分。
2. 可能你的 webpack 配置中没有启用压缩。你可以在 `optimization` 配置中启用压缩,例如:
```javascript
const webpackConfig = {
optimization: {
minimize: true,
minimizer: [
new UglifyJsPlugin({
uglifyOptions: {
compress: true
}
})
]
}
};
```
3. 可能你的代码中使用了一些 ES6 的语法,导致 `uglifyjs-webpack-plugin` 无法正确混淆。你可以尝试使用 Babel 转换为 ES5 语法后再进行混淆。
4. 可能你的代码中存在一些语法错误或逻辑错误,导致 `uglifyjs-webpack-plugin` 无法正确工作。你可以尝试在编译时开启严格模式,以便在开发阶段及时发现这些错误。
希望以上提示对你有所帮助。
相关问题
vue2 如何使用uglifyjs-webpack-plugin混淆代码
要在vue2中使用uglifyjs-webpack-plugin混淆代码,可以按照以下步骤进行操作:
1. 安装uglifyjs-webpack-plugin插件
```bash
npm install uglifyjs-webpack-plugin --save-dev
```
2. 在webpack的配置文件中引入uglifyjs-webpack-plugin插件
```javascript
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
```
3. 在webpack的配置文件中添加optimization选项
```javascript
module.exports = {
// ...其他配置
optimization: {
minimizer: [
new UglifyJsPlugin({
uglifyOptions: {
compress: {
warnings: false,
drop_console: true, // 去除console.log
drop_debugger: true // 去除debugger
}
}
})
]
}
}
```
这样就可以使用uglifyjs-webpack-plugin插件对代码进行混淆和压缩了。注意:混淆代码可能会导致某些代码无法正常运行,所以在使用前需要进行测试。
uglifyjs-webpack-plugin的mangle配置
uglifyjs-webpack-plugin 的 mangle 配置用于指定在压缩时对变量、函数名进行混淆的方式。具体配置项如下:
- `mangle.topLevel`:混淆顶层作用域中的变量名,默认为 `false`。
- `mangle.reserved`:保留指定的变量名,不进行混淆。可传入一个数组或者字符串。
- `mangle.properties`:混淆对象属性名,默认为 `false`,如果需要混淆对象属性名则设置为 `{}`。
- `mangle.keep_fnames`:保留函数名,默认为 `false`。
- `mangle.keep_classnames`:保留类名,默认为 `false`。
示例配置:
```javascript
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
module.exports = {
optimization: {
minimizer: [
new UglifyJsPlugin({
uglifyOptions: {
mangle: {
topLevel: true,
reserved: ['$', 'jQuery'],
properties: {},
keep_fnames: false,
keep_classnames: false,
},
},
}),
],
},
};
```