30.09.2015, 13:32
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Как сохранить несжатый файл - понятно
// [url]https://github.com/gulpjs/gulp/blob/master/docs/README.md[/url]
var gulp = require('gulp');
// [url]http://webpack.github.io/docs/[/url]
var webpack = require('webpack');
// [url]https://github.com/shama/webpack-stream[/url]
var webpackStream = require('webpack-stream');
gulp.task(
'task/build',
function() {
return gulp
.src('./src/index.js')
.pipe(webpackStream({
devtool: 'source-map',
debug: true,
output: {
filename: 'module.js'
}
}))
.pipe(gulp.dest('./dist'));
}
);
Как минимицировать тоже ясно:
gulp.task(
'task/build',
function() {
return gulp
.src('./src/index.js')
.pipe(webpackStream({
plugins: [
// [url]http://webpack.github.io/docs/list-of-plugins.html#uglifyjsplugin[/url]
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
})
],
devtool: 'source-map',
debug: true,
output: {
filename: 'module.min.js'
}
}))
.pipe(gulp.dest('./dist'));
}
);
А вот как сохранить и то и другое и описать это в одном конфиге?
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
06.10.2015, 13:27
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Нашел похожий вопрос на стеке: How to build minified and uncompressed bundle with webpack?
Ответы сводятся к
Цитата:
|
You can run webpack twice with different arguments
|
---
В примерах веб-пака нашел multi-compiler.
Т.о. в идеале конфиг будет выглядеть примерно так:
gulp.task(
pkg.name + '/build',
function() {
var MODULE = {
loaders: [
// [url]https://github.com/babel/babel-loader[/url]
{test: /\.js$/, loader: 'babel'},
// [url]https://github.com/webpack/json-loader[/url]
{test: /\.json$/, loader: 'json'},
// [url]https://github.com/webpack/html-loader[/url]
{test: /\.html$/, loader: 'html'}
]
};
// [url]http://webpack.github.io/docs/list-of-plugins.html#uglifyjsplugin[/url]
var UGLIFY = new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
});
// [url]http://webpack.github.io/docs/list-of-plugins.html#bannerplugin[/url]
var BANNER = new webpack.BannerPlugin(
'/*\n' +
' ' + pkg.name + ' v' + pkg.version + '\n' +
' ' + pkg.homepage + '\n' +
'*/\n'
,
{
entryOnly: true,
raw: true
}
);
return gulp
.src('./src/index.js')
.pipe(webpackStream(
[
// full
{
module: MODULE,
plugins: [BANNER],
devtool: 'source-map',
output: {
library: pkg.name,
libraryTarget: 'umd',
filename: pkg.name + '.js'
}
},
// min
{
module: MODULE,
plugins: [UGLIFY, BANNER],
devtool: 'source-map',
output: {
library: pkg.name,
libraryTarget: 'umd',
filename: pkg.name + '.min.js'
}
}
]
))
.pipe(gulp.dest('./dist'));
}
);
Проблема в том, что webpackStream не поддерживает array of options
Посмотрим, что ответит создатель плагина.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
09.10.2015, 12:59
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
У кого есть время и желание написать патч для webpack-stream?
https://github.com/shama/webpack-stream/issues/78
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
04.11.2015, 22:01
|
|
Профессор
|
|
Регистрация: 23.12.2013
Сообщений: 1,856
|
|
//новый адепт вкатился в трэд)
Чуваки, вы вебпаком собираете бэкэнд, так? Если да, то точно так же как и фронтэнд, всё собираете в один бандл или что-то другое придумали?
|
|
16.12.2015, 12:41
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Есть конфиг для вебпака и dev cервера (один конфиг) запускаю dev сервер с тем конфигом
output у меня на две дериктории выше ../../scripts-dist (для дев сервера как корень установил директорию в которой scripts-dist) и когда пробую получу скрипт по адресу localhost: port/script-dist/ то он отдает статику а не из память, как это решить?
context: __dirname,
entry: getEntries(),
output: {
filename: distDir
},
resolve: {
root: path.resolve('./'),
modulesDirectories: getModulesDirectories(),
}
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
Последний раз редактировалось cyber, 16.12.2015 в 12:44.
|
|
16.12.2015, 22:49
|
|
Администратор
|
|
Регистрация: 25.05.2007
Сообщений: 1,221
|
|
Обычная мультикомпиляция не подойдёт?
|
|
21.12.2015, 11:08
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Илья Кантор, нет, архитектура изначально была по индуски сделана и менять сейчас времени нет.
Так получилось что часть проекта собирается чезер один конфиг, ачасть через другой. Там библиотеки собираются отдельно а все остальное отдельно
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
26.04.2016, 13:52
|
|
Профессор
|
|
Регистрация: 08.07.2013
Сообщений: 212
|
|
Новый адепт вкатился в трэд [2]
Хочу попробовать вебпак на боевом проекте, и для этого сначала пытаюсь решить такую задачку:
При дефолтных настройках build layers выглядят примерно как
XA, YAB, ZA.
А я хочу - XA, YA, Z, B. Чтобы модуль B соответсвенно грузился on-demand, и только один раз, если мы запросим x и y.
Вроде доки говорят что для этого CommonsChunkPlugin, но что-то у меня не получается правильно его использовать.
Например я могу сказать так:
module.exports = {
entry: {
main: "./main",
BBuilded: ["B"]
},
resolve: {
modulesDirectories: [
"."
]
},
output: {
publicPath: "js/",
filename: "[name].builded.js"
},
plugins: [
new CommonsPlugin({
async: true,
children: true,
chunkNames: 'B'
})
]
};
B он вычленит, но из верних слоев не исключит.
Или могу сказать "пройдись по поддереву и выдели общее у всех потомков", но что делать в случае сложнее чет непонятно(
|
|
07.05.2016, 13:46
|
|
junior
|
|
Регистрация: 29.11.2011
Сообщений: 3,924
|
|
Как описать в одном конфиге сжатую и несжатую версии?
Очень часто мне приходится использовать вебпак для сборок модулей/компонентов (npm/bower). Ранее приходилось описывать два конфига сжатойй и несжатой версий. Оказывается, можно сделать в одном.
Тот же самый вопрос, заданный мною ранее http://javascript.ru/forum/showthrea...926#post390986
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
|
|
|
|