customize-cra
Version:
[](#contributors-)
3 lines (2 loc) • 8.22 kB
JavaScript
;function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var flow=_interopDefault(require("lodash.flow"));function _defineProperty(e,s,t){return s in e?Object.defineProperty(e,s,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[s]=t,e}function _objectSpread2(e){for(var s=1;s<arguments.length;s++)if(s%2){var t=null!=arguments[s]?arguments[s]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(s){_defineProperty(e,s,t[s])})}else Object.defineProperties(e,Object.getOwnPropertyDescriptors(arguments[s]));return e}const getBabelLoader=(e,s)=>{let t;t=s?e=>e.loader&&e.loader.includes("babel")&&e.exclude:e=>e.loader&&e.loader.includes("babel")&&e.include;let r=e.module.rules.find(e=>Array.isArray(e.oneOf)).oneOf,o=r.find(t);return o||(o=(r=r.reduce((e,s)=>e.concat(s.use||[]),[])).find(t)),o},tap=e=>s=>{const{message:t,dest:r}=e||{},o=[];if(t&&o.push(t),o.push(JSON.stringify(s,null,2)),r){require("fs").appendFile(r,`${o.join("\n")}\n`)}return o.forEach(e=>console.log(e)),s},addBundleVisualizer=(e={},s=!1)=>t=>{const r=require("webpack-bundle-analyzer").BundleAnalyzerPlugin;return s&&!process.argv.includes("--analyze")||t.plugins.push(new r(Object.assign({analyzerMode:"static",reportFilename:"report.html"},e))),t},disableEsLint=()=>e=>{return e.module.rules.filter(e=>e.use&&e.use.some(e=>e.options&&void 0!==e.options.useEslintrc)).forEach(s=>{e.module.rules=e.module.rules.filter(e=>e!==s)}),e},addWebpackAlias=e=>s=>(s.resolve||(s.resolve={}),s.resolve.alias||(s.resolve.alias={}),Object.assign(s.resolve.alias,e),s),addWebpackResolve=e=>s=>(s.resolve||(s.resolve={}),Object.assign(s.resolve,e),s),addWebpackPlugin=e=>s=>(s.plugins.push(e),s),adjustWorkbox=e=>s=>(s.plugins.forEach(s=>{"GenerateSW"===s.constructor.name&&e(s.config)}),s),adjustStyleLoaders=e=>s=>{const t="prod"===("production"===process.env.NODE_ENV?"prod":"dev")?"css-extract-plugin":"style-loader";return s.module.rules.find(e=>Array.isArray(e.oneOf)).oneOf.filter(({use:e})=>e&&e[0]&&(e[0].loader||e[0]).includes(t)).forEach(s=>e(s)),s},useEslintRc=e=>s=>{const t=s.module.rules.filter(e=>e.use&&e.use.some(e=>e.options&&void 0!==e.options.useEslintrc))[0];t.use[0].options.useEslintrc=!0,t.use[0].options.ignore=!0,t.use[0].options.configFile=e,delete t.use[0].options.baseConfig;const r=s.module.rules.map(e=>e.use&&e.use.some(e=>e.options&&void 0!==e.options.useEslintrc)?t:e);return s.module.rules=r,s},enableEslintTypescript=()=>e=>{const s=e.module.rules.filter(e=>e.use&&e.use.some(e=>e.options&&void 0!==e.options.useEslintrc))[0];s.test=/\.([j,t]sx?|mjs)$/;const t=e.module.rules.map(e=>e.use&&e.use.some(e=>e.options&&void 0!==e.options.useEslintrc)?s:e);return e.module.rules=t,e},addLessLoader=(e={},s={})=>t=>{const r=require("mini-css-extract-plugin"),o=require("postcss-normalize"),a=e.cssLoaderOptions||{},{localIdentName:l}=e;let n=e.cssModules||{localIdentName:l};n.localIdentName||(n=s),n.localIdentName=n.localIdentName||"[local]--[hash:base64:5]";const i=/\.module\.less$/,d=process.env.NODE_ENV,u="development"===d,p="production"===d,c="false"!==process.env.GENERATE_SOURCEMAP,b="./"===t.output.publicPath,g=(s,t)=>{const a=[u&&require.resolve("style-loader"),p&&{loader:r.loader,options:b?{publicPath:"../../"}:{}},{loader:require.resolve("css-loader"),options:s},{loader:require.resolve("postcss-loader"),options:{ident:"postcss",plugins:()=>[require("postcss-flexbugs-fixes"),require("postcss-preset-env")({autoprefixer:{flexbox:"no-2009"},stage:3}),o()],sourceMap:p&&c}}].filter(Boolean);return t&&a.push({loader:require.resolve("resolve-url-loader"),options:{sourceMap:p&&c}},{loader:require.resolve(t),options:Object.assign({sourceMap:!0},e)}),a},f=t.module.rules.find(e=>Array.isArray(e.oneOf)).oneOf;return f.splice(f.length-1,0,{test:/\.less$/,exclude:i,use:g(Object.assign({importLoaders:2,sourceMap:p&&c},a),"less-loader")},{test:i,use:g(Object.assign({importLoaders:2,sourceMap:p&&c},a,{modules:n}),"less-loader")}),t},watchAll=()=>e=>(process.argv.includes("--watch-all")&&delete e.watchOptions,e),disableChunk=()=>e=>(e.optimization.splitChunks={cacheGroups:{default:!1}},e.optimization.runtimeChunk=!1,e),addWebpackExternals=e=>s=>{let t=s.externals;return t?Array.isArray(e)?t=e.concat(t):Array.isArray(t)||e.constructor===Function||e.constructor===RegExp?t=[e].concat(t):e instanceof Object&&t instanceof Object&&(t=_objectSpread2({},t,{},e)):t=e,s.externals=t,s},addPostcssPlugins=e=>s=>{return s.module.rules.find(e=>Array.isArray(e.oneOf)).oneOf.forEach(s=>s.use&&s.use.forEach(s=>{if(s.options&&"postcss"===s.options.ident&&(s.options.plugins||(s.options.plugins=()=>[...e]),s.options.plugins)){const t=s.options.plugins;s.options.plugins=()=>[...t(),...e]}})),s},removeModuleScopePlugin=()=>e=>(e.resolve.plugins=e.resolve.plugins.filter(e=>"ModuleScopePlugin"!==e.constructor.name),e),addWebpackModuleRule=e=>s=>{for(let t of s.module.rules)if(t.oneOf){t.oneOf.unshift(e);break}return s},addTslintLoader=e=>s=>(s.module.rules.unshift({test:/\.(ts|tsx)$/,loader:"tslint-loader",options:e,enforce:"pre"}),s),setWebpackTarget=e=>s=>(s.target=e,s),setWebpackPublicPath=e=>s=>(e&&(e.startsWith("http")||e.startsWith("https")||e.startsWith("/")||(e="/"+e),e.endsWith("/")||(e+="/"),s.output.publicPath=e),s),setWebpackOptimizationSplitChunks=e=>s=>(e&&"object"==typeof e&&(s.optimization.splitChunks=e),s),setWebpackStats=e=>s=>(s.stats=e,s),addBabelPlugin=e=>s=>(getBabelLoader(s).options.plugins.push(e),s),addExternalBabelPlugin=e=>s=>{const t=getBabelLoader(s,!0).options;return t.plugins||(t.plugins=[]),t.plugins.push(e),s},addBabelPreset=e=>s=>(getBabelLoader(s).options.presets.push(e),s),addDecoratorsLegacy=()=>e=>addBabelPlugin(["@babel/plugin-proposal-decorators",{legacy:!0}])(e),useBabelRc=()=>e=>(getBabelLoader(e).options.babelrc=!0,e),babelInclude=e=>s=>(getBabelLoader(s).include=e,s),babelExclude=e=>s=>(getBabelLoader(s).exclude=e,s),addBabelPlugins=(...e)=>e.map(e=>addBabelPlugin(e)),addExternalBabelPlugins=(...e)=>e.map(e=>addExternalBabelPlugin(e)),addBabelPresets=(...e)=>e.map(e=>addBabelPreset(e)),fixBabelImports=(e,s)=>addBabelPlugin(["import",Object.assign({},{libraryName:e},s),`fix-${e}-imports`]),removeInternalBabelPlugin=e=>s=>(s.plugins=s.plugins.filter(s=>s.constructor.name!==e),s),override=(...e)=>flow(...e.filter(e=>e)),overrideDevServer=(...e)=>s=>(t,r)=>{const o=s(t,r);return override(...e)(o)};exports.addBabelPlugin=addBabelPlugin,exports.addBabelPlugins=addBabelPlugins,exports.addBabelPreset=addBabelPreset,exports.addBabelPresets=addBabelPresets,exports.addBundleVisualizer=addBundleVisualizer,exports.addDecoratorsLegacy=addDecoratorsLegacy,exports.addExternalBabelPlugin=addExternalBabelPlugin,exports.addExternalBabelPlugins=addExternalBabelPlugins,exports.addLessLoader=addLessLoader,exports.addPostcssPlugins=addPostcssPlugins,exports.addTslintLoader=addTslintLoader,exports.addWebpackAlias=addWebpackAlias,exports.addWebpackExternals=addWebpackExternals,exports.addWebpackModuleRule=addWebpackModuleRule,exports.addWebpackPlugin=addWebpackPlugin,exports.addWebpackResolve=addWebpackResolve,exports.adjustStyleLoaders=adjustStyleLoaders,exports.adjustWorkbox=adjustWorkbox,exports.babelExclude=babelExclude,exports.babelInclude=babelInclude,exports.disableChunk=disableChunk,exports.disableEsLint=disableEsLint,exports.enableEslintTypescript=enableEslintTypescript,exports.fixBabelImports=fixBabelImports,exports.getBabelLoader=getBabelLoader,exports.override=override,exports.overrideDevServer=overrideDevServer,exports.removeInternalBabelPlugin=removeInternalBabelPlugin,exports.removeModuleScopePlugin=removeModuleScopePlugin,exports.setWebpackOptimizationSplitChunks=setWebpackOptimizationSplitChunks,exports.setWebpackPublicPath=setWebpackPublicPath,exports.setWebpackStats=setWebpackStats,exports.setWebpackTarget=setWebpackTarget,exports.tap=tap,exports.useBabelRc=useBabelRc,exports.useEslintRc=useEslintRc,exports.watchAll=watchAll;
//# sourceMappingURL=index.cjs.js.map