Вот мой webpack.config.js
var webpack = require("webpack");
module.exports = {
entry: "./entry.js",
devtool: "source-map",
output: {
path: "./dist",
filename: "bundle.min.js"
},
plugins: [
new webpack.optimize.UglifyJsPlugin({minimize: true})
]
};
Я строю с
$ webpack
В моей dist
папке я только получаю
bundle.min.js
bundle.min.js.map
Я также хотел бы видеть несжатый bundle.js
javascript
node.js
webpack
Спасибо
источник
источник
Error: webpack.optimize.UglifyJsPlugin has been removed, please use config.optimization.minimize instead.
Вы можете использовать один файл конфигурации и включить плагин UglifyJS, условно используя переменную окружения:
а затем просто установите эту переменную, когда вы хотите минимизировать ее:
Редактировать:
Как упомянуто в комментариях,
NODE_ENV
обычно используется (по соглашению), чтобы указать, является ли конкретная среда производственной или средой разработки. Чтобы проверить это, вы также можете установитьvar PROD = (process.env.NODE_ENV === 'production')
и продолжить в обычном режиме.источник
compress
вместоminimize
?webpack -p
настройки из webpack.optimize.UglifyJsPlugin в вашей конфигурации webpack будут (хотя бы частично) игнорироваться (по крайней мере, настройкаmangle: false
игнорируется).webpack && webpack -p
.definePlugin
вместо этого, который я думаю, установлен по умолчанию с Webpack.Вы можете запустить webpack дважды с разными аргументами:
затем проверьте аргументы командной строки в
webpack.config.js
:пример webpack.config.js
источник
Чтобы добавить другой ответ, флаг
-p
(сокращение--optimize-minimize
) активирует UglifyJS с аргументами по умолчанию.Вы не получите минимизированный и необработанный пакет из одного прогона или не сгенерируете пакеты с другим именем, поэтому
-p
флаг может не соответствовать вашему варианту использования.И наоборот,
-d
вариант короток для--debug
--devtool sourcemap
--output-pathinfo
Мой webpack.config.js опускает
devtool
,debug
,pathinfo
и minmize плагина в пользу этих двух флагов.источник
Может быть, я опоздал сюда, но у меня та же проблема, поэтому я написал unminified-webpack-plugin для этой цели.
Монтаж
использование
Сделав, как указано выше, вы получите два файла library.min.js и library.js. Нет необходимости выполнять webpack дважды, он просто работает! ^^
источник
По моему мнению, намного проще просто использовать инструмент UglifyJS напрямую:
npm install --save-dev uglify-js
./dst/bundle.js
файла.Добавьте
build
команду к вашемуpackage.json
:npm run build
команду.Не нужно устанавливать uglify-js глобально, просто установите его локально для проекта.
источник
Вы можете создать две конфигурации для веб-пакета, один для минимизации кода, а другой - нет (просто удалите строку optimize.UglifyJSPlugin), а затем запустите обе конфигурации одновременно
$ webpack && webpack --config webpack.config.min.js
источник
Согласно этой строке: https://github.com/pingyuanChen/webpack-uglify-js-plugin/blob/master/index.js#L117
должно быть что-то вроде:
Действительно, вы можете иметь несколько сборок, экспортируя различные конфигурации в соответствии со своими стратегиями env / argv.
источник
minimize
в документах. Возможно, это устарело?у меня работает, с
-p
флагом.источник
Вы можете отформатировать ваш webpack.config.js следующим образом:
А затем построить его незавершенным запуском (находясь в главном каталоге проекта):
Для его построения минимизирован прогон:
Примечания. Убедитесь, что для неунифицированной версии вы изменили имя выходного файла на
library.js
и для минимизированного,library.min.js
чтобы они не перезаписывали друг друга.источник
У меня была та же проблема, и я должен был удовлетворить все эти требования:
Я наконец решил это следующим образом:
webpack.config.js:
package.json:
Тогда я могу построить (не забудьте
npm install
раньше):источник
Я нашел новое решение для этой проблемы.
При этом используется массив конфигурации, позволяющий веб-пакету параллельно создавать минимизированную и не минимизированную версии. Это делает сборку быстрее. Нет необходимости запускать веб-пакет дважды. Не нужно дополнительных плагинов. Просто веб-пакет.
webpack.config.js
Запуск
webpack
только соберет неминифицированную версию.Запуск
webpack --env=production
создаст минимизированную и не минимизированную версии одновременно.источник
Вы должны экспортировать массив следующим образом:
источник
Вы можете определить две точки входа в конфигурации вашего веб-пакета, одну для вашего обычного js, а другую для минимизированного js. Затем вы должны вывести свой пакет с его именем и настроить плагин UglifyJS для включения файлов min.js. См. Пример конфигурации веб-пакета для более подробной информации:
После запуска webpack вы получите bundle.js и bundle.min.js в вашей папке dist, не требуя дополнительного плагина.
источник