Попытка сгенерировать тот же мини-сценарий с помощью WebPack с Uglify-JS и Pure Uglify-JSJavascript

Форум по Javascript
Ответить
Anonymous
 Попытка сгенерировать тот же мини-сценарий с помощью WebPack с Uglify-JS и Pure Uglify-JS

Сообщение Anonymous »

Сегодня я использую изображение Docker, которое запускает Uglify-JS v3.19.3 в нескольких сценариях со следующими параметрами < /p> , где -m предназначен для Mangle, а -c предназначен для сжатия (как описано здесь https://www.npmjs.com/package/uglify-js) Bundled /Minified JavaScript. < /p>
Моя первая попытка - иметь возможность генерировать тот же сжатый файл, и он генерирует тот же JS, за исключением одного изменения.(()=>{{var m=window,p=document;/*the rest of the code*/
< /code>
При использовании Uglify-js напрямую у меня есть < /p>
((m,p)=>{/*the rest of the code*/})(window,document);
< /code>
Этот дифференциал не имеет большого значения, однако я хотел бы понять основную причину этого изменения. Я думаю, что будет легче представить этот новый рабочий процесс, если я покажу, что текущие минимизированные сценарии могут быть восстановлены таким же образом < /p>
my package.json < /p>
{
"name": "poc",
"version": "1.0.0",
"private": true,
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack"
},
"keywords": [],
"author": "",
"license": "ISC",
"description": "",
"devDependencies": {
"raw-loader": "^4.0.2",
"uglifyjs-webpack-plugin": "^2.2.0",
"webpack": "^5.99.9",
"webpack-cli": "^6.0.1"
}
}
< /code>
и мой webpack.config.js < /p>
const webpack = require('webpack');
const path = require('path');
const TerserPlugin = require("terser-webpack-plugin");

module.exports = {
entry: './src/xxx/index.js',
mode: 'none',
// mode: 'production', // This does not affect the output
output: {
path: path.resolve(__dirname, 'dist', 'xxx'),
filename: 'index.min.js',
},
plugins: [
new webpack.ProgressPlugin(),
],
optimization: {
minimize: true,
minimizer: [new TerserPlugin({
minify: TerserPlugin.uglifyJsMinify,
terserOptions: {
mangle: true,
compress: true,
},
})],
},
};
< /code>
Мой исходный код - < /p>
(function (window, document) {
/* code */
})(window, document);
< /code>
Как вы можете видеть, я вынуждаю окно прохождения и документирование в качестве аргументов, потому что в какой -то момент это было намеком, чтобы помочь миниверстам сжать еще больше. Возможно, это сам Webpack?

Подробнее здесь: https://stackoverflow.com/questions/796 ... nd-pure-ug
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»