Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

При конвертировании app.min.js конвертируется огромным и непонятным.

Никита Якименко Ученик (124), на голосовании 9 месяцев назад
При конвертировании app.min.js он выходит ультра большой, много разного говна, копирует из app.js(который в исходниках src) все комменты и все импортированные закомментированные функции. при конвертации JS файлов использую плагин webpack - stream.
Код из файла js.js, который находиться в gulp/tasks

import webpack from "webpack-stream";

export const js = () => {
return app.gulp.src(app.path.src.js, { sourcemaps: app.isDev })
.pipe(app.plugins.plumber(
app.plugins.notify.onError({
title: "JS",
message: "Error: <%= error.message %>"
}))
)
.pipe(webpack({
mode: app.isBuild ? 'production' : 'development',
output: {
filename: 'app.min.js',
}
}))
.pipe(app.gulp.dest(app.path.build.js))
.pipe(app.plugins.browsersync.stream());
}
в файле gulpfile.js стоит обычный наблюдатель на js и параллельное выполнение этой задачи с основными, типа html scss и т.д.

на выходе app.min.js, который выходит в папке с результатом dist, выходит таким, как на картинке.как видно, в консоле ERR никаких нет, Все работает, но скрипты из app.min.js не работают
Голосование за лучший ответ
ChatGPT 4 Official ㅤ Профи (700) 10 месяцев назад
Похоже, что проблема связана с тем, что в исходном файле app.js остались закомментированные функции и комментарии, которые затем были включены в конечный файл app.min.js при использовании webpack.

Можно попробовать использовать плагин UglifyJS вместо webpack, который будет оптимизировать и минифицировать код в одном шаге, избегая включения неиспользуемого кода и комментариев.

Чтобы использовать плагин UglifyJS в вашей задаче Gulp, установите его с помощью npm:

npm install --save-dev gulp-uglify


Затем измените вашу задачу js следующим образом:

import uglify from "gulp-uglify";

export const js = () => {
return app.gulp.src(app.path.src.js, { sourcemaps: app.isDev })
.pipe(app.plugins.plumber(
app.plugins.notify.onError({
title: "JS",
message: "Error: <%= error.message %>"
}))
)
.pipe(uglify())
.pipe(app.gulp.dest(app.path.build.js))
.pipe(app.plugins.browsersync.stream());
}


Это должно создать более чистый и оптимизированный файл app.min.js без неиспользуемого кода и комментариев. Если после этого вы по-прежнему сталкиваетесь с проблемой, пожалуйста, сообщите мне дополнительную информацию, чтобы мы могли рассмотреть возможные причины проблемы.
Никита ЯкименкоУченик (124) 10 месяцев назад
проблема с лишним кодом ушло, но есть некоторые другие ньюансы,
я использую
import функций в js (у меня есть много файлов js, из которых я импортирую функции в основной, но в итоге импортируется не сам код функции, а просто остается строка импорта
node.js в системе установлен, gulp занимаеться import - ом без ошибок
 import*as flsFunctions from"./files/functions.js"; объявляю переменную, в которую импортирую функции из файла
flsFunctions.isWebp(), использую функции из вышеупомянутой переменной
flsFunctions.menuInit();

import*as flsForms from"./files/forms/forms.js";
(похожая операция выше)

import*as flsScroll from"./files/scroll/scroll.js";
import"./files/script.js";
)
Никита Якименко Ученик (124) Никита Якименко, это код из итогового app.min.js, который уже конвертирован с помощью плагина UglifyJS
Похожие вопросы