UNPKG

sdin

Version:

JavaScript package builder.

2 lines 4.55 kB
import o from"@babel/runtime/helpers/defineProperty";function r(t,e){var n,o=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.push.apply(o,n)),o}function s(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?r(Object(n),!0).forEach(function(e){o(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}import{outputFile as a}from"fs-extra";import i from"html-webpack-plugin";import c from"mini-css-extract-plugin";import{mapValues as e,defaultsDeep as t,padStart as l}from"lodash";import{TJSXS_FILE_EXTENSIONS as n,withModulePath as p,withRootPath as u}from"../../utils/path";import{getScriptString as m,getHtmlString as d}from"./template";import{DefinePlugin as f,ProgressPlugin as h}from"webpack";async function g(e){var t,n=[],o={};for(t of e.pages){var r=e.withTmp(e.name,"".concat(t.name,".jsx"));n.push(a(r,m(t,r))),o[t.name]=r}return await Promise.all(n),o}function b(e){var t,n=[new h,new c({filename:"css/[name].[contenthash].css",chunkFilename:"css/[id].[contenthash].css"}),new f(e.toMacros())];for(t of e.pages)n.push(new i({minify:!0,inject:!0,chunks:[t.name],filename:"htm/".concat([t.path],".html"),templateContent:d(t)}));return n}function w(t){return{extensions:n,alias:s({react:t.withRoot("node_modules/react"),"react-dom":t.withRoot("node_modules/react-dom")},e(t.alias,e=>t.withRoot(e)))}}function x(e){return{modules:[e.withRoot("node_modules"),u("node_modules")]}}function y(){return{maxSize:524288,cacheGroups:s(s({},O([2,4,8,16,32,64],"s",101,v)),O([2,4,8,16,32,64],"m",201,S))}}function O(t,n,o,r){var s={};for(let e=0;e<t.length;e++){var a=t[e+1],i=t[e],a=a?a-1:0,c=l(i.toString(),2,"0"),a=l(a.toString(),2,"0"),c="".concat(n).concat(c).concat(a);s[c]=r(c,o+e,i)}return s}function v(e,t,n){return{name:e,chunks:"initial",minSize:1,priority:t,minChunks:n}}function S(e,t,n){return{test:/node_modules/,name:e,chunks:"initial",priority:t,minChunks:n}}function j(e){return[P(e),C(e),R(e),k(e),M(e),...e.rules,_(),$(e),D(e)]}function P(e){return t({generator:{filename:"raw/[name].[contenthash][ext]"}},e.rawRule,{type:"asset/source",test:/\.txt$/})}function C(e){return t({generator:{filename:"fnt/[name].[contenthash][ext]"}},e.fontRule,{type:"asset",test:/\.(woff2?|eot|ttf|otf)(\?.*)?$/,parser:{dataUrlCondition:{maxSize:10240}}})}function R(e){return t({generator:{filename:"img/[name].[contenthash][ext]"}},e.imageRule,{type:"asset",test:/\.(png|jpg|jpeg|svg|webp|gif|bmp|tif)(\?.*)?$/,parser:{dataUrlCondition:{maxSize:10240}}})}function k(e){return t({generator:{filename:"ado/[name].[contenthash][ext]"}},e.audioRule,{type:"asset",test:/\.(mp3|wma|wav|aac|amr|ogg)(\?.*)?$/,parser:{dataUrlCondition:{maxSize:20480}}})}function M(e){return t({generator:{filename:"vdo/[name].[contenthash][ext]"}},e.videoRule,{type:"asset",test:/\.(mp4|3gp|webm|mpg|avi|wmv|flv)(\?.*)?$/,parser:{dataUrlCondition:{maxSize:20480}}})}function _(){return{test:/\.css$/,use:[c.loader,{loader:"css-loader",options:{sourceMap:!0,importLoaders:1,modules:!1}},{loader:"postcss-loader",options:{sourceMap:!0,postcssOptions:{plugins:[p("postcss-import"),p("postcss-preset-env")]}}}]}}function $(e){return{test:/\.(sass|scss)$/,use:[c.loader,{loader:"css-loader",options:{sourceMap:!0,importLoaders:2,modules:e.sassModule&&{localIdentName:e.mixinClass?"[hash:base64:10]":"[local]_[hash:base64:7]",localIdentContext:e.src,exportLocalsConvention:"camelCaseOnly"}}},{loader:"postcss-loader",options:{sourceMap:!0,postcssOptions:{plugins:[p("postcss-import"),p("postcss-preset-env")]}}},{loader:"sass-loader",options:{sourceMap:!0}}]}}function D(e){var{babelIncludes:e,babelExcludes:t}=e,n={};return 0<e.length&&(n.include=e),n.exclude=[/node_modules/],0<t.length&&(n.exclude=n.exclude.concat(t)),s(s({},n),{},{test:/\.(js|jsx|ts|tsx)$/,use:[{loader:"babel-loader",options:{compact:!1,babelrc:!1,sourceMap:!0,configFile:!1,cacheDirectory:!1,cacheCompression:!1,presets:[[p("@babel/preset-env"),{targets:[">= 0.2%","not dead","node >= 16"]}],p("@babel/preset-react"),p("@babel/preset-typescript")],plugins:[p("@babel/plugin-transform-runtime")]}}]})}export{g as getWebpackEntry,b as getWebpackPlugins,w as getWebpackResolve,x as getWebpackResolveLoader,y as getWebpackSplitChunks,j as getWebpackRules}; //# sourceMappingURL=webpack.js.map