2015-08-06 2 views
2

Можно ли назначить псевдонимы для погрузчиков в webpack?Псевдонимы для погрузчиков в webpack

Использование:

image: function(opts) { 
    return "image-size?name=[name]-[hash:8].[ext]" 
} 
css: function(opts) { 
    return "style?singleton!css?sourceMap&module&localIdentName=[path][name]_[local]_[hash:base64:6]!postcss" 
} 

Я понимаю, что это как файл используются расширения, и может стать ненужным объектом.

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

говорят,

require('./file1.png?size=10') 
require('./file2.png?size=15') 

// at one place require it as component 
// passing through a set of loaders 
var Component = require('react-svg!./image.svg') 
// and in another require it as data-uri 
// passing through a different set of loaders 
var imagestr = require('data-uri!./image.svg') 
// and in css 
url(image!./image.svg) 
+0

Я настоятельно рекомендую вам не использовать синтаксис загрузчика в 'require'. 'require' имеет определенное значение в модулях CommonJS, а пользователи Webpack девальвируют это значение, делая код менее смысловым и несовместимым с гораздо более популярной формой Node.js' require'. Псевдонимы делают то же самое. Это намного чище и совместимо с сообществом, чтобы сделать это способом NPM - требовать в модуле, используя его имя. Это позволяет легко увидеть, что происходит в вашем коде, где можно получить документацию, где искать Github и т. Д. –

ответ

4

Да, вы можете использовать псевдонимы для погрузчиков в resolveLoader разделе в вашей конфигурации, но в одном псевдониме можно определить только один погрузчик:

resolveLoader: { 
    alias: { 
     'my-image': 'image-size?name=[name]-[hash:8].[ext]', 
     'my-style': 'style?singleton', 
     'my-css': 'css?sourceMap&module&localIdentName=[path][name]_[local]_[hash:base64:6]' 
    } 
}, 

так что ваш код будет быть таким:

require('my-image!./image.svg'); 
require('my-style!my-css!postcss!./style.css'); 
+0

Как я могу использовать этот загрузчик с помощью массива 'loaders'? например: 'loaders: [{test: /\.png$/, loader: 'my-image']' –

Смежные вопросы