待解决问题:当js要获取样式文件(css、less、scss)中的字符串内容时,可以通过以下方式获取;但是通过这种方式得到的css内容是无法压缩的。//npminstallraw-loaderless-loaderrequire('!!raw-loader!less-loader!.style.less').default.toString()解决方案:通过添加postcss-loader压缩结果//npminstallcss-loaderpostcss-loaderpostcssless-loaderrequire('!!css-loader?sourceMap=false!postcss-loader?{"postcssOptions":{"plugins":{"cssnano":{}}}}!less-loader!./style.less').default.toString();优化:因为require不能使用变量,所以每次都需要写很长的前缀;所以压缩函数被封装到一个自定义的webpack加载器中以隐藏压缩Working:raw-loader.jsmodule.exports=functionrawLoader(){}module.exports.pitch=function(remainingRequest){constloaderUtils=require('loader-效用');constrequestPath=loaderUtils.stringifyRequest(this,`!!css-loader?sourceMap=false!postcss-loader?{"postcssOptions":{"plugins":{"cssnano":{}}}}!${remainingRequest}`);返回`varstyleModule=require(${requestPath});module.exports=(styleModule.default||styleModule).toString();`;}使用:require('!!./raw-loader.js!less-loader!./style.less');require('!!./raw-loader.js!./style.css');
