Skip to content

feat(*): add ability extract resources in specific folder #186

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

blazarev
Copy link

суть PR в том, что бы дать возможность пользователям складывать файлы (иконки, шрифты и прочее что проходит через file-loader) в отдельный каталог по нужному пути.

к примеру сейчас что бы обойти это ограничение приходится прибегать к подобному хаку

config.module.rules
    .filter(item => /file-loader/.test(item.loader))
    .forEach((item) => {
        if (item.options && item.options.name) {
            item.options.name = `${ASSETS_PATH}[name].[hash].[ext]`;
        }
    });

@artptr
Copy link

artptr commented Mar 26, 2018

А для каких целей может такое понадобиться?

@blazarev
Copy link
Author

blazarev commented Mar 27, 2018

  • сделать консистентно обработке css - для css такая опция есть изначально.
  • с целью складывать всю статику в конкретный суб каталога внутри билда и сервить его (сейчас это делает node.js на нашем проекете к примеру). Накидывать всё в рутовый каталог так себе выглядит.

по css - webpack.production-builder.js

    const extractMainCSS = new ExtractTextPlugin(options.extractMainCSS || '[name].[hash].css');
    const extractIconsCSS = new ExtractTextPlugin(options.extractIconsCSS || '[name]-icons.[hash].css');

@artptr
Copy link

artptr commented Mar 27, 2018

Так в стабе уже предусмотрено, что вся статика кладётся в каталог assets. Кроме неё там ничего нет. Управляется это заданием параметра output.path в вебпаке.

@blazarev
Copy link
Author

blazarev commented Mar 27, 2018

outputh.path выставлен как .build и именно туда попадают файлы обработанные file-loader. не в каталог assets.

Помимо этого возможность выбирать каталог для экспорта ресурсов должна быть на уровне библиотеки пресетов, а не стаба (которым кстати не все пользуются).

ps - к тому же PR не ломает обратной совместимости - то что работало, будет работать и дальше)

@artptr
Copy link

artptr commented Mar 27, 2018

Не совсем понятно, в чём отличие клиентских скриптов и стилей от картинок и шрифтов, чтобы физически их разделять. И то, и другое нужно сёрвить. Если даже хочется отделить клиентские скрипты, стили и всё остальное, то дробить уже по их типам, а не в зависимости от лоадера.

@blazarev
Copy link
Author

blazarev commented Mar 27, 2018

не не, физически вся статика будет попадать в отдельный каталог, а из корня только server.js крутится с нодой которая и сервит статику.
я к тому, что для css(пример выше в комментах) и js( кусок секции output - filename: isProd ? ${ASSETS_PATH}[name].[hash].js : ${ASSETS_PATH}[name].js) есть возможность положить их в отдельный каталог, а ресурсы которые проходят через file-loader попадают в корень билда а не в нужную папку.

@artptr artptr requested review from tx44 and Heymdall April 4, 2018 21:08
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants