Javascript-форум (https://javascript.ru/forum/)
-   Сборка проекта, утилиты (https://javascript.ru/forum/server-tools/)
-   -   Webpack'а тред (https://javascript.ru/forum/server-tools/53907-webpack%27-tred.html)

Erolast 30.08.2015 17:24

Цитата:

Сообщение от Lemme (Сообщение 386557)
Например?

К примеру, задачу минификации картинок, webpack вряд ли выполнит, в смысле, не потому, что это нереально, а судя по его идее.

А вот к примеру "собрать спрайт" из папки в файл sprite.png и все данные о спрайте вынести в миксины и переменные какого-то препроцессора?

Ты не понял. Использование вебпака через гульп имеет смысл только тогда, когда есть иные таски, кроме сборки.

Цитата:

gulp - раннер каких угодно тасков, от чистки ./tmp до деплоймента, хоть и использующийся обычно для сборки.
webpack специализирован исключительно для сборки.

Lemme 30.08.2015 17:33

Erolast, похоже, что на сегодня слишком много инфы, завтра перечитаю,спасибо).

Lemme 02.09.2015 16:55

Объясните, как работает file-loader.

Допустим загружаем картинки в папку assets/images
module: {
	loaders: [

		// ...
		{
			test: /\.(jpg|gif|png|svg)$/i,
			loader: 'file?context=' + path.join('app', 'resources', 'images') + '&name=assets/images/[name].[hash].[ext]'
		},
	]
}


Alias для подключения бла-бла-бла..
resolve: {

	// ...
	alias: {
		images:	path.join(_path, 'app', 'resources/images'),
	}
},

Собственно, подключение какой-то картинки
import React from 'react';

// испортим через alias
import logo from 'images/logo.png';

class Logo extends React.Component {
	render() {
		return (
			// а тут подключаем
			<img src={logo} alt="" />
		);
	}
}

export default Logo;


Это имхо - дикое извращение, но оно работает..

Все хорошо хотя нет, вру, нифига не хорошо, хорошо только то, что загружает только использованные изоображения, а их подключение - это жесть.

Но ладно - это прокатит в html, jade etc..., а что мне делать, если я захочу подключить это изоображение в стилях? =) Копипастить из src в dist?:D

kobezzza 02.09.2015 20:03

Цитата:

К примеру, задачу минификации картинок, webpack вряд ли выполнит, в смысле, не потому, что это нереально, а судя по его идее.
https://github.com/thetalecrafter/img-loader

Цитата:

Но ладно - это прокатит в html, jade etc..., а что мне делать, если я захочу подключить это изоображение в стилях? =) Копипастить из src в dist?
https://github.com/webpack/html-loader
https://github.com/webpack/css-loader

А вообще:

http://webpack.github.io/docs/list-of-loaders.html

Читай документацию, а не придумывай извращения.

***

Что касается задач: WebPack - это сборщик модулей или сайта. Gulp/Grunt - запускальщик тасков.

kobezzza 02.09.2015 20:06

Ещё важно понимать, что по умолчанию WebPack всё тянет в собираемый файл, т.е. можно сделать полностью запускаемый Файл, который содержит в себе стили, вёрстку, логику, картинки (как бейс64) и т.д. но можно делать как обычно, т.е. сохранять всё по разным файлом, для этих задач есть:

https://github.com/webpack/file-loader

Lemme 02.09.2015 21:28

Цитата:

т.е. можно сделать полностью запускаемый Файл, который содержит в себе стили, вёрстку, логику, картинки (как бейс64) и т.д.
Это круто, наверное =)
Цитата:

Читай документацию
Только это и делаю
Цитата:

а не придумывай извращения.
Ууу, нет, это придумал не я.
https://github.com/rambler-digital-s...ck-boilerplate
скину ссылку на файл с шаблоном, чтоб не ковырялся по всему репозиторию
https://github.com/rambler-digital-s.../hello.jade#L6

Спасибо за ссылку, но html,css,file лоадеры я использовал, но видимо, не так как нужно=)

Erolast 04.09.2015 18:23

Цитата:

Это круто, наверное =)
Для разработки - да, в продакшене же отсутствие поддержки JS у клиента будет еще и ломать всю верстку.

Lemme 04.09.2015 18:45

Цитата:

отсутствие поддержки JS у клиента будет еще и ломать всю верстку
Erolast, ну, а если используется - аля ангуляр/реакт(без серверного рендеринга), то страница и так работать не будет. =)

Lemme 04.09.2015 20:17

Пытаюсь настроить react-hot-loader с webpack-dev-server. Все запускается, в консоли пишет, что апдейтится, но на самом деле - ничего не происходит. Даже webpack-dev-server не перезагружает...

лог консоли
Цитата:

Error: [HMR] Hot Module Replacement is disabled. app.bundle.4ce2f5ca49e19b0a82ac.js line 62 > eval:76:7
[WDS] Hot Module Replacement enabled. client:15:2
[WDS] App updated. Recompiling... client:19:2
[WDS] App hot update... client:65:3
[WDS] App updated. Recompiling... client:19:2
[WDS] App hot update... client:65:3
[WDS] App updated. Recompiling... client:19:2
[WDS] App hot update... client:65:3
[WDS] App updated. Recompiling... client:19:2
[WDS] App hot update... client:65:3
Вот куски конфига.
entry: {
	app: [ path.resolve('app', 'entry', 'index.jsx'), 'webpack/hot/only-dev-server' ],
	vendors: Object.keys(dependencies)
}

module: {
	loaders: [
		{
			test: /\.(jsx|js)$/,
			exclude: path.resolve('node_modules'),
			loader:'react-hot!babel-loader'
		},
	]
}


Кто то сталкивался с таким?
hot включен.

пробовал добавить в ентри
client: 'webpack-dev-server/client?http://localhost:3000'


Решено

Думал, что в настройках webpack-dev-server'a
hot: true
равняется --hot либо
new webpack.HotModuleReplacementPlugin()

оказывается - нет.

Lemme 16.09.2015 17:04

Вопрос про url-loader

Ничего страшного не будет (некорректное кодирование или еще что-то), если не указывать mimetype ?

т.е вместо
{
	test: /\.png$/,
	loader: 'url?limit=10000&mimetype=image/png'
},
{
	test: /\.gif$/,
	loader: 'url?limit=10000&mimetype=image/gif'
},
{
	test: /\.jpg$/,
	loader: 'url?limit=10000&mimetype=image/jpeg'
}


записать так
{
	test: /\.(png|gif|jpg)/,
	loader: 'url?limit=10000'
}


Часовой пояс GMT +3, время: 05:11.