\href{https://www.npmjs.com/package/resolve-url-loader}{\texttt{ }}

A {\bfseries{webpack loader}} that rewrites relative paths in url() statements based on the original source file.\hypertarget{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24820}{}\doxysection{Why?}\label{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24820}
\begin{quote}
{\bfseries{TL;DR}} Making Sass work with a feature based project structure \end{quote}
With webpack you can import a {\ttfamily .scss} file (or some other compile-\/to-\/css file) and have a loader take care of the transpilation. With {\bfseries{Sass}} (at least) this file can include a whole tree of source files into a single output.

We can imagine a virtual {\ttfamily .css} file at the location the original {\ttfamily .scss} import. Webpack expects any {\bfseries{assets}} found in this CSS to be relative to the original imported file.

For projects with a {\bfseries{feature based structure}} this will be a problem, since you will want to {\bfseries{co-\/locate}} your assets with your {\ttfamily .scss} partials.

{\bfseries{Example}} -\/ webpack imports {\ttfamily index.\+scss} which includes feature {\ttfamily foo}.

\tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{2}{|X[-1]}|}
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ files   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ content    }\\\cline{1-2}
\endfirsthead
\hline
\endfoot
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ files   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ content    }\\\cline{1-2}
\endhead
src /   &\\\cline{1-2}
~~index.\+scss   &{\ttfamily @import features/foo}    \\\cline{1-2}
~~features /   &\\\cline{1-2}
~~~~\+\_\+foo.\+scss   &{\ttfamily url(bar.\+png)}    \\\cline{1-2}
~~~~bar.\+png   &\\\cline{1-2}
\end{longtabu}


Intuatively we want the assets in partial {\ttfamily \+\_\+foo.\+scss} relative to the partial, meaning {\ttfamily url(bar.\+png)}.

However webpack\textquotesingle{}s {\ttfamily css-\/loader} will encounter {\ttfamily url(bar.\+png)} and expect to find {\ttfamily src/bar.\+png}. This is {\bfseries{not}} the correct location and the build will fail.

Thankfully {\ttfamily resolve-\/url-\/loader} provides the \char`\"{}url rewriting\char`\"{} that Sass is missing. Use it {\itshape after} the transpiler (such as \href{https://www.npmjs.com/package/sass-loader}{\texttt{ sass-\/loader}}). It makes use of the \href{http://www.mattzeunert.com/2016/02/14/how-do-source-maps-work.html}{\texttt{ source-\/map}} to find the original source file and rewrite {\ttfamily url()} statements.

In our example it rewrites {\ttfamily url(bar.\+png)} to {\ttfamily url(features/bar.\+png)} as required.\hypertarget{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24821}{}\doxysection{Version 3}\label{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24821}
{\bfseries{Features}}


\begin{DoxyItemize}
\item Use {\ttfamily postcss} parser by default. This is long overdue as the old {\ttfamily rework} parser doesn\textquotesingle{}t cope with modern css.
\item Lots of automated tests running actual webpack builds. If you have an interesting use-\/case let me know.
\end{DoxyItemize}

{\bfseries{Breaking Changes}}
\begin{DoxyItemize}
\item Multiple options changed or deprecated.
\item Removed file search \char`\"{}magic\char`\"{} in favour of {\ttfamily join} option.
\item Errors always fail and are no longer swallowed.
\item Processing absolute asset paths requires {\ttfamily root} option to be set.
\end{DoxyItemize}

{\bfseries{Migrating}}

Initially set option `engine\+: \textquotesingle{}rework'{\ttfamily for parity with your existing build. Once working you can remove this option $\ast$$\ast$or$\ast$$\ast$ set}engine\+: \textquotesingle{}postcss\textquotesingle{}\`{} explicitly.

Retain {\ttfamily keep\+Query} option if you are already using it.

The {\ttfamily root} option now has a different meaning. Previously it limited file search. Now it is the base path for absolute or root-\/relative URIs, consistent with {\ttfamily css-\/loader}. If you are already using it you can probably remove it.

If you build on Windows platform {\bfseries{and}} your content contains absolute asset paths, then {\ttfamily css-\/loader} could fail. The {\ttfamily root} option here may fix the URIs before they get to {\ttfamily css-\/loader}. Try to leave it unspecified, otherwise (windows only) set to empty string `root\+: '\textquotesingle{}\`{}.\hypertarget{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24822}{}\doxysection{Getting started}\label{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24822}
\hypertarget{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24823}{}\doxysubsection{Install}\label{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24823}
via npm


\begin{DoxyCode}{0}
\DoxyCodeLine{npm install resolve-\/url-\/loader -\/-\/save-\/dev }

\end{DoxyCode}


via yarn


\begin{DoxyCode}{0}
\DoxyCodeLine{yarn add resolve-\/url-\/loader -\/-\/dev }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24824}{}\doxysubsection{Configure Webpack}\label{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24824}
The typical use case is {\ttfamily resolve-\/url-\/loader} between {\ttfamily sass-\/loader} and {\ttfamily css-\/loader}.

$\ast$$\ast$\+:warning\+: IMPORTANT$\ast$$\ast$
\begin{DoxyItemize}
\item {\bfseries{source-\/maps required}} for loaders preceding {\ttfamily resolve-\/url-\/loader} (regardless of {\ttfamily devtool}).
\item Always use {\bfseries{full loader package name}} (don\textquotesingle{}t omit {\ttfamily -\/loader}) otherwise you can get errors that are hard to debug.
\end{DoxyItemize}


\begin{DoxyCode}{0}
\DoxyCodeLine{rules: [}
\DoxyCodeLine{  \{}
\DoxyCodeLine{    test: /\(\backslash\).scss\$/,}
\DoxyCodeLine{    use: [}
\DoxyCodeLine{      ...}
\DoxyCodeLine{      \{}
\DoxyCodeLine{        loader: 'css-\/loader',}
\DoxyCodeLine{        options: \{...\}}
\DoxyCodeLine{      \}, \{}
\DoxyCodeLine{        loader: 'resolve-\/url-\/loader',}
\DoxyCodeLine{        options: \{...\}}
\DoxyCodeLine{      \}, \{}
\DoxyCodeLine{        loader: 'sass-\/loader',}
\DoxyCodeLine{        options: \{}
\DoxyCodeLine{          sourceMap: true,}
\DoxyCodeLine{          sourceMapContents: false}
\DoxyCodeLine{        \}}
\DoxyCodeLine{      \}}
\DoxyCodeLine{    ]}
\DoxyCodeLine{  \},}
\DoxyCodeLine{  ...}
\DoxyCodeLine{] }

\end{DoxyCode}


Refer to {\ttfamily test} directory for full webpack configurations (as used in automated tests).\hypertarget{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24825}{}\doxysection{Options}\label{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24825}
\tabulinesep=1mm
\begin{longtabu}spread 0pt [c]{*{5}{|X[-1]}|}
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ option   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ type   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ default   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ description    }\\\cline{1-5}
\endfirsthead
\hline
\endfoot
\hline
\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ option   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ type   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ default   }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ }&\PBS\centering \cellcolor{\tableheadbgcolor}\textbf{ description    }\\\cline{1-5}
\endhead
{\ttfamily engine}   &`\textquotesingle{}rework'{\ttfamily $<$br/$>$}\textquotesingle{}postcss\textquotesingle{}{\ttfamily \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$}\textquotesingle{}postcss\textquotesingle{}{\ttfamily \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ The css parser engine. \textbackslash{}ilinebr $<$/td$>$ $<$/tr$>$ $<$tr class=\char`\"{}markdown\+Table\+Row\+Even\char`\"{}$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$}source\+Map{\ttfamily \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ boolean \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$}false{\ttfamily \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ Generate a source-\/map. \textbackslash{}ilinebr $<$/td$>$ $<$/tr$>$ $<$tr class=\char`\"{}markdown\+Table\+Row\+Odd\char`\"{}$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$}keep\+Query{\ttfamily \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ boolean \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$}false{\ttfamily \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ Keep query-\/string and/or hash suffixes.$<$br/$>$e.\+g.}url(\textquotesingle{}./\+My\+Font.eot?\#iefix\textquotesingle{}){\ttfamily $<$br/$>$Be aware downstream loaders may remove query-\/string or hash. \textbackslash{}ilinebr $<$/td$>$ $<$/tr$>$ $<$tr class=\char`\"{}markdown\+Table\+Row\+Even\char`\"{}$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$}remove\+CR{\ttfamily \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ boolean \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$}false{\ttfamily \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ Convert orphan CR to whitespace (postcss only).$<$br/$>$See known issues below. \textbackslash{}ilinebr $<$/td$>$ $<$/tr$>$ $<$tr class=\char`\"{}markdown\+Table\+Row\+Odd\char`\"{}$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$}debug{\ttfamily \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ boolean \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$}false{\ttfamily \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ Display debug information. \textbackslash{}ilinebr $<$/td$>$ $<$/tr$>$ $<$tr class=\char`\"{}markdown\+Table\+Row\+Even\char`\"{}$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$}silent{\ttfamily \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ boolean \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$}false{\ttfamily \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ Do $\ast$$\ast$not$\ast$$\ast$ display warnings. \textbackslash{}ilinebr $<$/td$>$ $<$/tr$>$ $<$tr class=\char`\"{}markdown\+Table\+Row\+Odd\char`\"{}$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$}root{\ttfamily \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ string \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ \+\_\+unset\+\_\+ \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ Similar to the (now defunct) option in}css-\/loader{\ttfamily .$<$br/$>$This string, possibly empty, is prepended to absolute URIs.$<$br/$>$Absolute URIs are only processed if this option is set. \textbackslash{}ilinebr $<$/td$>$ $<$/tr$>$ $<$tr class=\char`\"{}markdown\+Table\+Row\+Even\char`\"{}$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$}join{\ttfamily \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ function \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ \+\_\+inbuilt\+\_\+ \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ advanced \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ Custom join function.$<$br/$>$Use custom javascript to fix asset paths on a per-\/case basis.$<$br/$>$Refer to the default implementation for more information. \textbackslash{}ilinebr $<$/td$>$ $<$/tr$>$ $<$tr class=\char`\"{}markdown\+Table\+Row\+Odd\char`\"{}$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$}absolute{\ttfamily \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$ boolean \textbackslash{}ilinebr $<$/td$>$ $<$td class=\char`\"{}markdown\+Table\+Body\+None\char`\"{}$>$}false\`{}   &useless   &Forces URIs to be output as absolute file paths.~\newline
This is retained for historical compatibility but is likely to be removed in the future, so let me know if you use it.   \\\cline{1-5}
\end{longtabu}
\hypertarget{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24826}{}\doxysection{How it works}\label{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24826}
A \href{https://github.com/reworkcss/rework}{\texttt{ rework}} or \href{https://postcss.org/}{\texttt{ postcss}} process is run on incoming CSS.

Each {\ttfamily url()} statement may imply an asset or may not. Generally only relative URIs are considered. However if {\ttfamily root} is specified then absolute or root-\/relative URIs are considered.

For each URI considered, the incomming source-\/map is consulted to determine the original file where the {\ttfamily url()} was specified. This becomes the {\ttfamily base} argument to the {\ttfamily join} function, whose default implementation is something like the following pseudocode.


\begin{DoxyCode}{0}
\DoxyCodeLine{join(uri, base?) =>}
\DoxyCodeLine{  compose(path.normalize, path.join)(base || options.join, uri); }

\end{DoxyCode}


Note that for absolute {\ttfamily uri} then the {\ttfamily base} is absent. In the default implementation the {\ttfamily root} option is used instead.

Full file search has been discontinued in version 3, however it is possible to specify a custom {\ttfamily join} function.

There is the added complexity that {\ttfamily base} may be an iterator. However {\ttfamily resolve-\/url-\/loader} exports some useful functions that makes a custom {\ttfamily join} easier.

Following {\ttfamily join} the URI has become an absolute path. Back-\/slashes are then converted to forward-\/slashes and the path is made relative to the initial resource being considered.

Use the {\ttfamily debug} option to see verbose information from the {\ttfamily join} function.\hypertarget{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24827}{}\doxysection{Limitations / Known-\/issues}\label{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24827}
\hypertarget{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24828}{}\doxysubsection{Mixins}\label{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24828}
Where {\ttfamily url()} statements are created in a mixin the source file may then be the mixin file, and not the file calling the mixin. Obviously this is {\bfseries{not}} the desired behaviour.

Ensure this is indeed the problem as there are many ways to misconfigure webpack. Try inlining the mixin and check that everything works correctly. However ultimately you will need to work around this.\hypertarget{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24829}{}\doxysubsection{Compatiblity}\label{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24829}
Tested {\ttfamily mac\+OS} and {\ttfamily Windows} for {\ttfamily node 6.\+x}.

All {\ttfamily webpack1}-\/{\ttfamily webpack4} with contemporaneous loaders/plugins.

Refer to {\ttfamily test} directory for full webpack configurations (as used in automated tests).

Some edge cases with {\ttfamily libsass} on {\ttfamily Windows} (see below).\hypertarget{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24830}{}\doxysubsection{Engines}\label{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24830}
The {\ttfamily engine\+:postcss} is by far the more reliable option.

The {\ttfamily engine\+:rework} option is retained for historical compatibility but is likely to be removed in the future, so let me know if you use it.

If you need production css source-\/map it is best to avoid the combination {\ttfamily webpack4} with {\ttfamily engine\+:rework}. Tests show a systematic flaw in the outgoing source-\/map mappings.\hypertarget{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24831}{}\doxysubsection{Absolute URIs}\label{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24831}
By \char`\"{}absolute URIs\char`\"{} we more correctly mean assets with root-\/relative URLs or absolute file paths.

\begin{quote}
Absolute paths are {\bfseries{not}} processed by default \end{quote}
These are {\bfseries{not}} processed unless a {\ttfamily root} is specified.

However recall that any paths that {\itshape are} processed will have windows back-\/slash converted to posix forward-\/slash. This can be useful since some webpack loaders can choke on windows paths. By using `root\+: '\textquotesingle{}{\ttfamily then}resolve-\/url-\/loader\`{} effectively does nothing to absolute paths except change the back-\/slash.

It can also be useful to process absolute URIs if you have a custom {\ttfamily join} function and want to process all paths. However this is perhaps better done with some separate {\ttfamily postcss} plugin.\hypertarget{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24832}{}\doxysubsection{Windows line breaks}\label{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24832}
Normal windows linebreaks are {\ttfamily CRLF}. But sometimes libsass will output single {\ttfamily CR} characters.

This problem is specific to multiline declarations. Refer to the \href{https://github.com/sass/libsass/issues/2693}{\texttt{ libsass bug \#2693}}.

If you have {\itshape any} such multiline declarations preceding {\ttfamily url()} statements it will fail your build.

Libsass doesn\textquotesingle{}t consider these orphan {\ttfamily CR} to be newlines but {\ttfamily postcss} engine does. The result being an offset in source-\/map line-\/numbers which crashes {\ttfamily resolve-\/url-\/loader}.


\begin{DoxyCode}{0}
\DoxyCodeLine{Module build failed: Error: resolve-\/url-\/loader: CSS error}
\DoxyCodeLine{  source-\/map information is not available at url() declaration }

\end{DoxyCode}


Some users find the node-\/sass {\ttfamily linefeed} option solves the problem.

{\bfseries{Solutions}}
\begin{DoxyItemize}
\item Try the node-\/sass \href{https://github.com/sass/node-sass\#linefeed--v300}{\texttt{ linefeed}} option by way of {\ttfamily sass-\/loader}.
\end{DoxyItemize}

{\bfseries{Work arounds}}
\begin{DoxyItemize}
\item Enable {\ttfamily remove\+CR} option \href{\#option}{\texttt{ here}}.
\item Remove linebreaks in declarations.
\end{DoxyItemize}

{\bfseries{Diagnosis}}
\begin{DoxyEnumerate}
\item Run a stand-\/alone sass build {\ttfamily npx node-\/sass index.\+scss output.\+css}
\item Use a hex editor to check line endings {\ttfamily Format-\/\+Hex output.\+css}
\item Expect {\ttfamily 0DOA} (or desired) line endings. Single {\ttfamily 0D} confirms this problem.
\end{DoxyEnumerate}\hypertarget{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24833}{}\doxysection{Getting help}\label{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24833}
Webpack is difficult to configure but extremely rewarding.

\begin{quote}
Remove this loader and make sure it is not a problem with a different loader in your config (most often the case) \end{quote}
I am happy for you to {\bfseries{raise an issue}} to ask a question regarding this package. However ensure you follow the check-\/list first.

Currently I am {\bfseries{not}} \href{https://en.wikipedia.org/wiki/Eating_your_own_dog_food}{\texttt{ dogfooding}} this loader in my own work. I may rely on you being able to isolate the problem in a simple example project and to help debug.

I am happy this loader helps so many people. Open-\/source is provided as-\/is so please try not project your frustrations. There are some really great people who follow this project who can help.\hypertarget{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24834}{}\doxysubsection{Issues}\label{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24834}
Before raising a new issue\+:


\begin{DoxyItemize}
\item Remove this loader and make sure it is not a problem with a different loader in your config (most often the case).
\item Check \href{http://stackoverflow.com/search?q=resolve-url-loader}{\texttt{ stack overflow}} for an answer.
\item Review \href{/issues?utf8=\%E2\%9C\%93&q=is\%3Aissue}{\texttt{ previous issues}} that may be similar.
\item Be prepared to create a {\bfseries{simple open-\/source project}} that exhibits your problem, should the solution not be immediately obvious to us.
\item (ideally) Debug some code and let me know where the problem sits.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24835}{}\doxysubsection{Pull requests}\label{md_sfcode_node_modules_resolve_url_loader_README_autotoc_md24835}
I am happy to take {\bfseries{pull requests}}, however\+:


\begin{DoxyItemize}
\item Ensure your change is {\bfseries{backwards compatible}} -\/ not all users will be using the same version of Webpack or SASS that you do.
\item Follow the {\bfseries{existing code style}}. I know it is old but it maintains backwards compatibility.
\item Uncomon use-\/cases/fixes should be opt-\/in per a new {\bfseries{option}}.
\item Do {\bfseries{not}} overwrite existing variables with new values. I would prefer your change variable names elsewhere if necessary.
\item Add {\bfseries{comments}} that describe why the code is necessary -\/ i.\+e. what edge case are we solving. Otherwise we may rewrite later and break your use-\/case. 
\end{DoxyItemize}