tff-tailor
Version:
tailor for toursforfun frontend
66 lines (61 loc) • 1.57 kB
JavaScript
/**
* loader for util
*/
const StringReplaceWebpackPlugin = require("string-replace-webpack-plugin");
module.exports = config => {
let outputConfig = config.output,
stringReplaceLoader = {
loader: StringReplaceWebpackPlugin.replace({
//TODO replace something
replacements: [
{
pattern: /<script[^>]+src="([^"]+)"[^>]*?>[\s\S]*?<\/script>/gim,
replacement: function(match, src, offset, string) {
let result = /^(\w+:)?(\/\/)/.test(src)
? src
: `${outputConfig.publicPath}${
outputConfig.js.path
}/${src}`.replace(/\\/g, "/");
return match.toString().replace(src, result);
}
},
{
pattern: /<link[^>]+href="([^"]+)"[^>]*?\/?\/?>/gim,
replacement: function(match, src, offset, string) {
let result = /^(\w+:)?(\/\/)/.test(src)
? src
: `${outputConfig.publicPath}${
outputConfig.js.path
}/${src}`.replace(/\\/g, "/");
return match.toString().replace(src, result);
}
}
// {
// pattern: /@font-face\s*{(.*?)}/gim,
// replacement: function(match, src, offset, string) {
// return match
// .toString()
// .replace(/url\("([\s\S]+")\)/gim, "url('$1')");
// }
// }
]
})
},
toStringLoader = {
loader: "to-string-loader"
},
cacheLoader = {
loader: "cache-loader",
options: {}
},
threadLoader = {
loader: "thread-loader",
options: {}
};
return {
stringReplaceLoader,
cacheLoader,
threadLoader,
toStringLoader
};
};