Skip to content
4 changes: 2 additions & 2 deletions docs/ru/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
- [Создание проекта](start/setup.md)
- Возможности
- [ES2015](features/es2015.md)
- [Scoped CSS](features/scoped-css.md)
- [Локальный CSS](features/scoped-css.md)
- [CSS модули](features/css-modules.md)
- [PostCSS](features/postcss.md)
- [Горячая замена](features/hot-reload.md)
- Настройка
- [Пре-процессоры](configurations/pre-processors.md)
- [Asset URL Handling](configurations/asset-url.md)
- [Обработка вложенных URL](configurations/asset-url.md)
- [Продвинутая конфигурация](configurations/advanced.md)
- [Извлечение CSS в файл](configurations/extract-css.md)
- [Пользовательские блоки](configurations/custom-blocks.md)
Expand Down
81 changes: 52 additions & 29 deletions docs/ru/configurations/advanced.md
Original file line number Diff line number Diff line change
@@ -1,57 +1,80 @@
# Продвинутая конфигурация vue-loader

Иногда может потребоваться применить пользовательский загрузчик (loader) к секции файла, вместо того чтобы обработкой занимался `vue-loader`. Или вы можете просто хотеть переопределить встроенные настройки загрузчиков для языков по умолчанию. Чтобы сделать это нужно добавить блок `vue` в файл конфигурации Webpack, и указать опцию `loaders`.
Иногда может потребоваться сделать:

### Webpack 1.x
1. Применить пользовательский загрузчик (loader) к языку, вместо обработки его с помощью `vue-loader`;

2. Переопределить встроенные настройки загрузчиков для языков по умолчанию.

3. Добавить предварительную обработку или пост-обработку специфичной секции другим загрузчиком.

Чтобы сделать это укажите опцию `loaders` для `vue-loader`:

> Опции `preLoaders` и `postLoaders` доступны только в версиях >=10.3.0

### Webpack 2.x

``` js
// webpack.config.js
module.exports = {
// другие настройки...
module: {
loaders: [
// module.rules тоже самое, что и module.loaders в 1.x
rules: [
{
test: /\.vue$/,
loader: 'vue'
loader: 'vue-loader',
options: {
// указанные `loaders` переопределят загрузчики используемые по умолчанию
// Конфигурация ниже будет обрабатывать все теги <script> без атрибута "lang"
// с помощью coffee-loader
loaders: {
js: 'coffee-loader'
},

// `preLoaders` будут применены перед стандартными загрузчиками.
// Вы можете использовать это для предварительной обработки секций
// часто используемая потребность для локализации на этапе сборки.
preLoaders: {
js: '/path/to/custom/loader'
},

// `postLoaders` будут применены после стандартных загрузчиков.
//
// - Для `html`, результат возвращаемый стандартным загрузчиком
// будет скомпилированный в JavaScript код render-функции.
//
// - Для `css`, результат возвращаемый из vue-style-loader
// что не является особенно полезным в большинстве случаев.
// Использование postcss-плагина будет лучшим вариантом.
postLoaders: {
html: 'babel-loader'
}
}
}
]
},
// настройки vue-loader
vue: {
// ... другие настройки vue
loaders: {
// обрабатывать все <script> без атрибута "lang" с помощью coffee-loader
js: 'coffee-loader',
// позволяет вам писать markdown внутри <template> тегов...
// (это доступно только в версиях 10.2.0+)
html: 'marked'
}
}
}
```

### Webpack 2.x
### Webpack 1.x

``` js
// webpack.config.js
module.exports = {
// другие настройки...
module: {
// module.rules тоже самое, что и module.loaders в 1.x
rules: [
loaders: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: {
// обрабатывать все теги <script> без атрибута "lang" с помощью coffee-loader
js: 'coffee-loader',
// позволяет вам писать markdown внутри <template> тегов...
// (это доступно только в версиях 10.2.0+)
html: 'marked'
}
}
loader: 'vue'
}
]
},
// настройки vue-loader
vue: {
loaders: {
// такая же конфигурация правил как и выше
}
}
}
```
Expand Down
6 changes: 3 additions & 3 deletions docs/ru/configurations/custom-blocks.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

Вы можете определять пользовательски блоки внутри `*.vue` файлов. Содержимое пользовательских блоков будет обрабатываться загрузчиками, указанными с объекте `loaders` настроек `vue-loader` и затем подключено модулем к компоненту. Конфигурация аналогична тому, что описано в разделе [продвинутой конфигурации загрузчиков](../configurations/advanced.md), за исключением совпадений по имени тега, вместо атрибута `lang`.

Если подходящий загрузчик будет найден для пользовательского блока, он будет обработан; в противном случае пользовательский блок будет просто проигнорирован.

## Пример

Пример извлечения всех пользовательских блоков `<docs>` в отдельный файл документации:
Expand Down Expand Up @@ -62,6 +64,4 @@ module.exports = {
]
}
}
```

Обратите внимание что пользовательские блоки требуют специальной конфигурации для нормальной работы, так что вы возможно заходите избежать распространять компоненты другим для повторного использования с пользовательскими блоками в исходном коде.
```
46 changes: 23 additions & 23 deletions docs/ru/configurations/extract-css.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

Пример конфигурации для извлечения CSS из всех компонентов Vue в отдельный CSS-файл:

### Webpack 1.x
### Webpack 2.x

``` bash
npm install extract-text-webpack-plugin --save-dev
npm install extract-text-webpack-plugin@2.x --save-dev
```

``` js
Expand All @@ -15,30 +15,31 @@ var ExtractTextPlugin = require("extract-text-webpack-plugin")
module.exports = {
// другие настройки...
module: {
loaders: [
rules: [
{
test: /\.vue$/,
loader: 'vue'
loader: 'vue-loader',
options: {
loaders: {
css: ExtractTextPlugin.extract({
loader: 'css-loader',
fallbackLoader: 'vue-style-loader' // <- это внутренняя часть vue-loader, поэтому нет необходимости его устанавливать через NPM
})
}
}
},
]
},
vue: {
loaders: {
css: ExtractTextPlugin.extract("css"),
// вы также можете добавить <style lang="less"> или другие языки
less: ExtractTextPlugin.extract("css!less")
}
},
plugins: [
new ExtractTextPlugin("style.css")
]
}
```

### Webpack 2.x
### Webpack 1.x

``` bash
npm install extract-text-webpack-plugin@2.x --save-dev
npm install extract-text-webpack-plugin --save-dev
```

``` js
Expand All @@ -48,21 +49,20 @@ var ExtractTextPlugin = require("extract-text-webpack-plugin")
module.exports = {
// другие настройки...
module: {
rules: [
loaders: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: {
css: ExtractTextPlugin.extract({
loader: 'css-loader',
fallbackLoader: 'vue-style-loader' // <- это внутренняя часть vue-loader, поэтому нет необходимости его устанавливать через NPM
})
}
}
loader: 'vue'
}
]
},
vue: {
loaders: {
css: ExtractTextPlugin.extract("css"),
// вы также можете добавить <style lang="less"> или другие языки
less: ExtractTextPlugin.extract("css!less")
}
},
plugins: [
new ExtractTextPlugin("style.css")
]
Expand Down
2 changes: 1 addition & 1 deletion docs/ru/features/css-modules.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# CSS Modules
# CSS модули

> требуется версия 9.8.0 или выше

Expand Down
65 changes: 45 additions & 20 deletions docs/ru/options.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,7 @@

## Отличия в использовании с Webpack 1 & 2

Для Webpack 1.x: добавить блок `vue` в корень конфигурации Webpack:

``` js
module.exports = {
// ...
vue: {
// настройки vue-loader
}
}
```

Для Webpack 2 (^2.1.0-beta.25):
Для Webpack 2: настройки можно передавать непосредственно в правилах загрузчиков.

``` js
module.exports = {
Expand All @@ -32,11 +21,22 @@ module.exports = {
}
```

Для Webpack 1.x: добавить блок `vue` в корень конфигурации Webpack:

``` js
module.exports = {
// ...
vue: {
// настройки vue-loader
}
}
```

### loaders

- Тип: `Object`
- Тип: `{ [lang: string]: string }`

Объект определяющий какие loader'ы должен использовать Webpack для каждой секции `*.vue` файлов. Ключ соответствует атрибуту `lang` у секции файла, если таковой был указан. Значения `lang` по умолчанию:
Объект определяющий какие загрузчики Webpack переопределят стандартные загрузчики, используемые для обработки секций `*.vue` файлов. Ключ соответствует атрибуту `lang` у секции файла, если таковой был указан. Значения `lang` по умолчанию:

- `<template>`: `html`
- `<script>`: `js`
Expand All @@ -45,18 +45,43 @@ module.exports = {
Например, чтобы использовать `babel-loader` и `eslint-loader` для обработки всех секций `<script>`:

``` js
// ...
vue: {
loaders: {
js: 'babel!eslint'
}
// Конфигурация Webpack 2.x
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: {
js: 'babel-loader!eslint-loader'
}
}
}
]
}
```

### preLoaders

- Тип: `{ [lang: string]: string }`
- поддерживается только в версиях >=10.3.0

Конфигурация подобна как и в `loaders`, но `preLoaders` будут применены к соответствующим секциям перед стандартными загрузчиками. Вы можете использовать это для предварительной обработки секций - например для локализации на этапе сборки.

### postLoaders

- Тип: `{ [lang: string]: string }`
- поддерживается только в версиях >=10.3.0

Конфигурация подобна как и в `loaders`, но `postLoaders` применяются после загрузчиков по умолчанию. Вы можете использовать это для пост-обработки языков. Обратите внимание, что тем не менее всё несколько сложнее:

- Для `html`, результат возвращаемый стандартным загрузчиком будет скомпилированный в JavaScript код render-функции.

- Для `css`, результат возвращаемый из `vue-style-loader`,что не является особенно полезным в большинстве случаев. Использование postcss-плагина будет лучшим вариантом.

### postcss

- Тип: `Array` или `Function` или `Object`
- `Object` поддерживается в версиях 8.5.0 и выше

Определяет список плагинов PostCSS, которые будут применяться к CSS внутри `*.vue` файлов. Если используется функция, то она будет вызвана в контексте того же loader'а и должна возвращать массив плагинов.

Expand Down