plugin-light
Version:
Webpack 相关插件、Loader、基础配置及 CLI 命令
2 lines (1 loc) • 1.74 kB
JavaScript
;var e=require("path"),t=require("loader-utils"),n=require("t-comm"),r=require("fs");function c(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var s=c(e),i=c(r),o="base.scss";var a="mp-weixin",u="mp-qq",l={MP_WX:".wxss",MP_QQ:".qss",MP_ALIPAY:".acss",MP_JD:".jxss"};Object.keys(l).reduce((function(e,t){return e[t]=l[t].slice(1),e}),{});var f="ALL";function p(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=(t.getOptions(this)||{}).platforms,r=void 0===n?e:n,c=process.env.UNI_PLATFORM||"";return r===f||r.indexOf(f)>-1||r.includes(c)}var d=[a,u],m="./css/".concat(o);module.exports=function(e){if(!p.call(this,d))return e;var r=(t.getOptions(this)||{}).topElement,c=void 0===r?"body":r,a=this.context,u=function(e){var t=n.normalizePath(e).match(/\/([^/]+)$/);return(null==t?void 0:t[1])||""}(a);if(!u)return e;if(e.indexOf(m)<0)return e;var l=function(e){return i.readdirSync(e).filter((function(e){return e.endsWith("scss")&&!e.startsWith(o)})).map((function(e){return e.replace(/\.scss$/,"")}))}(s.join(a,"css"));if(!l.length)return e;var f=new RegExp("src=[\"']".concat(m,"[\"']>[^<]*</style>")),v=function(e){var t=e.styleList,n=e.componentName,r=e.topElement,c=e.dir,s=void 0===c?"":c,i=t.map((function(e){return"\n &--type-".concat(e," {\n @import './").concat(s).concat(e,".scss';\n }")})).join("\n");return"\n".concat(r,".").concat(n," {\n ").concat(i,"\n}\n")}({styleList:l,componentName:u,topElement:c,dir:"css/"});return e.replace(f,">".concat(v,"</style>"))};