@elliemae/pui-cli 8.60.1 → 8.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/build/docs/404.html +2 -2
  2. package/build/docs/api/functions/loadRoutes/index.html +2 -2
  3. package/build/docs/api/index.html +2 -2
  4. package/build/docs/api/type-aliases/LIB_NAME/index.html +2 -2
  5. package/build/docs/api/variables/babelConfig/index.html +2 -2
  6. package/build/docs/api/variables/commitlintConfig/index.html +2 -2
  7. package/build/docs/api/variables/eslintBaseConfig/index.html +2 -2
  8. package/build/docs/api/variables/eslintConfig/index.html +2 -2
  9. package/build/docs/api/variables/jestConfig/index.html +2 -2
  10. package/build/docs/api/variables/jestNodeConfig/index.html +2 -2
  11. package/build/docs/api/variables/lintStagedConfig/index.html +2 -2
  12. package/build/docs/api/variables/prettierConfig/index.html +2 -2
  13. package/build/docs/api/variables/stylelintConfig/index.html +2 -2
  14. package/build/docs/api/variables/vitestConfig/index.html +2 -2
  15. package/build/docs/assets/js/04ee7372.eb3eba67.js +1 -0
  16. package/build/docs/assets/js/{main.0c8eaec6.js → main.b803b389.js} +2 -2
  17. package/build/docs/assets/js/{runtime~main.da6a4745.js → runtime~main.cc39bdb0.js} +1 -1
  18. package/build/docs/index.html +2 -2
  19. package/build/docs/ssl-certificate-setup/index.html +2 -2
  20. package/build/docs/usage-guide/index.html +34 -3
  21. package/dist/cjs/webpack/helpers.js +26 -22
  22. package/dist/cjs/webpack/prop-types-shim.js +86 -0
  23. package/dist/cjs/webpack/webpack.base.babel.js +1 -0
  24. package/dist/cjs/webpack/webpack.dev.babel.js +9 -1
  25. package/dist/cjs/webpack/webpack.prod.babel.js +22 -1
  26. package/dist/esm/webpack/helpers.js +26 -22
  27. package/dist/esm/webpack/prop-types-shim.js +66 -0
  28. package/dist/esm/webpack/webpack.base.babel.js +1 -0
  29. package/dist/esm/webpack/webpack.dev.babel.js +9 -1
  30. package/dist/esm/webpack/webpack.prod.babel.js +21 -1
  31. package/dist/types/lib/webpack/helpers.d.ts +12 -1
  32. package/dist/types/lib/webpack/prop-types-shim.d.ts +356 -0
  33. package/dist/types/tsconfig.tsbuildinfo +1 -1
  34. package/package.json +1 -1
  35. package/build/docs/assets/js/04ee7372.2e1e1e1d.js +0 -1
  36. /package/build/docs/assets/js/{main.0c8eaec6.js.LICENSE.txt → main.b803b389.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- (()=>{"use strict";var e,a,r,t,d,f={},o={};function c(e){var a=o[e];if(void 0!==a)return a.exports;var r=o[e]={id:e,loaded:!1,exports:{}};return f[e].call(r.exports,r,r.exports,c),r.loaded=!0,r.exports}c.m=f,c.c=o,e=[],c.O=(a,r,t,d)=>{if(!r){var f=1/0;for(i=0;i<e.length;i++){for(var[r,t,d]=e[i],o=!0,b=0;b<r.length;b++)(!1&d||f>=d)&&Object.keys(c.O).every(e=>c.O[e](r[b]))?r.splice(b--,1):(o=!1,d<f&&(f=d));if(o){e.splice(i--,1);var n=t();void 0!==n&&(a=n)}}return a}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[r,t,d]},c.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return c.d(a,{a:a}),a},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var d=Object.create(null);c.r(d);var f={};a=a||[null,r({}),r([]),r(r)];for(var o=2&t&&e;("object"==typeof o||"function"==typeof o)&&!~a.indexOf(o);o=r(o))Object.getOwnPropertyNames(o).forEach(a=>f[a]=()=>e[a]);return f.default=()=>e,c.d(d,f),d},c.d=(e,a)=>{for(var r in a)c.o(a,r)&&!c.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce((a,r)=>(c.f[r](e,a),a),[])),c.u=e=>"assets/js/"+({594:"5e8c322a",1091:"5fb3c522",1712:"0551d4dd",1724:"e5f79924",2076:"common",2113:"6bd11e52",2577:"f736c962",2960:"5d5f1db0",3361:"c377a04b",3891:"71f6d02b",4676:"80e87108",5742:"aba21aa0",5908:"04ee7372",6130:"16b7bc88",6688:"6e96545e",7098:"a7bd4aaa",7581:"37d86055",7613:"b8ac1d98",8155:"bde5209a",8401:"17896441",9048:"a94703ab",9577:"1b9df811",9647:"5e95c892"}[e]||e)+"."+{214:"e932bc50",257:"da6ab919",531:"b3c0f751",587:"3e897148",594:"63d6d806",638:"f59bb1de",777:"db9eb7f1",1024:"0ca269c1",1091:"1592c73f",1146:"7ff9d7f5",1236:"24991ad9",1288:"9c173a20",1416:"c604f5e7",1597:"17d2bd76",1712:"58dce19e",1724:"2efdfe47",2076:"f683c0f9",2113:"4b9c45b0",2374:"ae355d5a",2489:"1ace319a",2577:"6265de57",2665:"3d3ed8e7",2960:"3d288dfe",3157:"499b7ccc",3361:"21ea0a0a",3459:"1cf3b2a0",3508:"f2459147",3577:"bf712d7a",3637:"2fd79cb3",3842:"bba4c6ae",3891:"87cb2383",4567:"68666b1a",4676:"57f84690",4807:"c70072c2",5292:"6c0adb74",5340:"8d229cb1",5495:"fc6702af",5514:"9fd8c017",5742:"3bbcf0cc",5908:"2e1e1e1d",5961:"53c06284",6130:"2cc43381",6688:"533bc68f",6769:"4deb61f5",7002:"315eaa08",7098:"50af694c",7217:"9270512e",7307:"15fc501e",7431:"89a82fd9",7581:"00427a30",7613:"c1c3b146",7827:"3bf58028",8155:"bbb8d0f5",8177:"0f879494",8218:"4b3271b4",8401:"25e17bfc",8410:"4caf8372",8751:"f6d57117",8775:"854a763b",9048:"681fb870",9111:"e4f9e857",9400:"feb1292f",9407:"5adfbff6",9577:"248b2d00",9647:"0d2e631f"}[e]+".js",c.miniCssF=e=>{},c.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t={},d="@elliemae/pui-cli:",c.l=(e,a,r,f)=>{if(t[e])t[e].push(a);else{var o,b;if(void 0!==r)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var l=n[i];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==d+r){o=l;break}}o||(b=!0,(o=document.createElement("script")).charset="utf-8",c.nc&&o.setAttribute("nonce",c.nc),o.setAttribute("data-webpack",d+r),o.src=e),t[e]=[a];var u=(a,r)=>{o.onerror=o.onload=null,clearTimeout(s);var d=t[e];if(delete t[e],o.parentNode&&o.parentNode.removeChild(o),d&&d.forEach(e=>e(r)),a)return a(r)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=u.bind(null,o.onerror),o.onload=u.bind(null,o.onload),b&&document.head.appendChild(o)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.p="/cli/",c.gca=function(e){return e={17896441:"8401","5e8c322a":"594","5fb3c522":"1091","0551d4dd":"1712",e5f79924:"1724",common:"2076","6bd11e52":"2113",f736c962:"2577","5d5f1db0":"2960",c377a04b:"3361","71f6d02b":"3891","80e87108":"4676",aba21aa0:"5742","04ee7372":"5908","16b7bc88":"6130","6e96545e":"6688",a7bd4aaa:"7098","37d86055":"7581",b8ac1d98:"7613",bde5209a:"8155",a94703ab:"9048","1b9df811":"9577","5e95c892":"9647"}[e]||e,c.p+c.u(e)},(()=>{var e={5354:0,1869:0};c.f.j=(a,r)=>{var t=c.o(e,a)?e[a]:void 0;if(0!==t)if(t)r.push(t[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var d=new Promise((r,d)=>t=e[a]=[r,d]);r.push(t[2]=d);var f=c.p+c.u(a),o=new Error;c.l(f,r=>{if(c.o(e,a)&&(0!==(t=e[a])&&(e[a]=void 0),t)){var d=r&&("load"===r.type?"missing":r.type),f=r&&r.target&&r.target.src;o.message="Loading chunk "+a+" failed.\n("+d+": "+f+")",o.name="ChunkLoadError",o.type=d,o.request=f,t[1](o)}},"chunk-"+a,a)}},c.O.j=a=>0===e[a];var a=(a,r)=>{var t,d,[f,o,b]=r,n=0;if(f.some(a=>0!==e[a])){for(t in o)c.o(o,t)&&(c.m[t]=o[t]);if(b)var i=b(c)}for(a&&a(r);n<f.length;n++)d=f[n],c.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return c.O(i)},r=globalThis.webpackChunk_elliemae_pui_cli=globalThis.webpackChunk_elliemae_pui_cli||[];r.forEach(a.bind(null,0)),r.push=a.bind(null,r.push.bind(r))})()})();
1
+ (()=>{"use strict";var e,a,r,t,d,f={},o={};function c(e){var a=o[e];if(void 0!==a)return a.exports;var r=o[e]={id:e,loaded:!1,exports:{}};return f[e].call(r.exports,r,r.exports,c),r.loaded=!0,r.exports}c.m=f,c.c=o,e=[],c.O=(a,r,t,d)=>{if(!r){var f=1/0;for(i=0;i<e.length;i++){for(var[r,t,d]=e[i],o=!0,b=0;b<r.length;b++)(!1&d||f>=d)&&Object.keys(c.O).every(e=>c.O[e](r[b]))?r.splice(b--,1):(o=!1,d<f&&(f=d));if(o){e.splice(i--,1);var n=t();void 0!==n&&(a=n)}}return a}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[r,t,d]},c.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return c.d(a,{a:a}),a},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var d=Object.create(null);c.r(d);var f={};a=a||[null,r({}),r([]),r(r)];for(var o=2&t&&e;("object"==typeof o||"function"==typeof o)&&!~a.indexOf(o);o=r(o))Object.getOwnPropertyNames(o).forEach(a=>f[a]=()=>e[a]);return f.default=()=>e,c.d(d,f),d},c.d=(e,a)=>{for(var r in a)c.o(a,r)&&!c.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce((a,r)=>(c.f[r](e,a),a),[])),c.u=e=>"assets/js/"+({594:"5e8c322a",1091:"5fb3c522",1712:"0551d4dd",1724:"e5f79924",2076:"common",2113:"6bd11e52",2577:"f736c962",2960:"5d5f1db0",3361:"c377a04b",3891:"71f6d02b",4676:"80e87108",5742:"aba21aa0",5908:"04ee7372",6130:"16b7bc88",6688:"6e96545e",7098:"a7bd4aaa",7581:"37d86055",7613:"b8ac1d98",8155:"bde5209a",8401:"17896441",9048:"a94703ab",9577:"1b9df811",9647:"5e95c892"}[e]||e)+"."+{214:"e932bc50",257:"da6ab919",531:"b3c0f751",587:"3e897148",594:"63d6d806",638:"f59bb1de",777:"db9eb7f1",1024:"0ca269c1",1091:"1592c73f",1146:"7ff9d7f5",1236:"24991ad9",1288:"9c173a20",1416:"c604f5e7",1597:"17d2bd76",1712:"58dce19e",1724:"2efdfe47",2076:"f683c0f9",2113:"4b9c45b0",2374:"ae355d5a",2489:"1ace319a",2577:"6265de57",2665:"3d3ed8e7",2960:"3d288dfe",3157:"499b7ccc",3361:"21ea0a0a",3459:"1cf3b2a0",3508:"f2459147",3577:"bf712d7a",3637:"2fd79cb3",3842:"bba4c6ae",3891:"87cb2383",4567:"68666b1a",4676:"57f84690",4807:"c70072c2",5292:"6c0adb74",5340:"8d229cb1",5495:"fc6702af",5514:"9fd8c017",5742:"3bbcf0cc",5908:"eb3eba67",5961:"53c06284",6130:"2cc43381",6688:"533bc68f",6769:"4deb61f5",7002:"315eaa08",7098:"50af694c",7217:"9270512e",7307:"15fc501e",7431:"89a82fd9",7581:"00427a30",7613:"c1c3b146",7827:"3bf58028",8155:"bbb8d0f5",8177:"0f879494",8218:"4b3271b4",8401:"25e17bfc",8410:"4caf8372",8751:"f6d57117",8775:"854a763b",9048:"681fb870",9111:"e4f9e857",9400:"feb1292f",9407:"5adfbff6",9577:"248b2d00",9647:"0d2e631f"}[e]+".js",c.miniCssF=e=>{},c.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t={},d="@elliemae/pui-cli:",c.l=(e,a,r,f)=>{if(t[e])t[e].push(a);else{var o,b;if(void 0!==r)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var l=n[i];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==d+r){o=l;break}}o||(b=!0,(o=document.createElement("script")).charset="utf-8",c.nc&&o.setAttribute("nonce",c.nc),o.setAttribute("data-webpack",d+r),o.src=e),t[e]=[a];var u=(a,r)=>{o.onerror=o.onload=null,clearTimeout(s);var d=t[e];if(delete t[e],o.parentNode&&o.parentNode.removeChild(o),d&&d.forEach(e=>e(r)),a)return a(r)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=u.bind(null,o.onerror),o.onload=u.bind(null,o.onload),b&&document.head.appendChild(o)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.p="/cli/",c.gca=function(e){return e={17896441:"8401","5e8c322a":"594","5fb3c522":"1091","0551d4dd":"1712",e5f79924:"1724",common:"2076","6bd11e52":"2113",f736c962:"2577","5d5f1db0":"2960",c377a04b:"3361","71f6d02b":"3891","80e87108":"4676",aba21aa0:"5742","04ee7372":"5908","16b7bc88":"6130","6e96545e":"6688",a7bd4aaa:"7098","37d86055":"7581",b8ac1d98:"7613",bde5209a:"8155",a94703ab:"9048","1b9df811":"9577","5e95c892":"9647"}[e]||e,c.p+c.u(e)},(()=>{var e={5354:0,1869:0};c.f.j=(a,r)=>{var t=c.o(e,a)?e[a]:void 0;if(0!==t)if(t)r.push(t[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var d=new Promise((r,d)=>t=e[a]=[r,d]);r.push(t[2]=d);var f=c.p+c.u(a),o=new Error;c.l(f,r=>{if(c.o(e,a)&&(0!==(t=e[a])&&(e[a]=void 0),t)){var d=r&&("load"===r.type?"missing":r.type),f=r&&r.target&&r.target.src;o.message="Loading chunk "+a+" failed.\n("+d+": "+f+")",o.name="ChunkLoadError",o.type=d,o.request=f,t[1](o)}},"chunk-"+a,a)}},c.O.j=a=>0===e[a];var a=(a,r)=>{var t,d,[f,o,b]=r,n=0;if(f.some(a=>0!==e[a])){for(t in o)c.o(o,t)&&(c.m[t]=o[t]);if(b)var i=b(c)}for(a&&a(r);n<f.length;n++)d=f[n],c.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return c.O(i)},r=globalThis.webpackChunk_elliemae_pui_cli=globalThis.webpackChunk_elliemae_pui_cli||[];r.forEach(a.bind(null,0)),r.push=a.bind(null,r.push.bind(r))})()})();
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="generator" content="Docusaurus v3.9.2">
6
6
  <title data-rh="true">PUI CLI Documentation | Cli</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/cli/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="PUI CLI Documentation | Cli"><meta data-rh="true" name="description" content="Welcome to the ICE MT UI Platform CLI documentation. This CLI tool provides a comprehensive set of commands for building, testing, and maintaining UI applications and libraries."><meta data-rh="true" property="og:description" content="Welcome to the ICE MT UI Platform CLI documentation. This CLI tool provides a comprehensive set of commands for building, testing, and maintaining UI applications and libraries."><link data-rh="true" rel="icon" href="/cli/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/cli/"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/cli/</span> </p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"PUI CLI Documentation","item":"https://pui.ice.com/cli/"}]}</script><link rel="stylesheet" href="/cli/assets/css/styles.690bd141.css">
7
- <script src="/cli/assets/js/runtime~main.da6a4745.js" defer="defer"></script>
8
- <script src="/cli/assets/js/main.0c8eaec6.js" defer="defer"></script>
7
+ <script src="/cli/assets/js/runtime~main.cc39bdb0.js" defer="defer"></script>
8
+ <script src="/cli/assets/js/main.b803b389.js" defer="defer"></script>
9
9
  </head>
10
10
  <body class="navigation-with-keyboard">
11
11
  <svg style="display: none;"><defs>
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="generator" content="Docusaurus v3.9.2">
6
6
  <title data-rh="true">Trust SSL Certificate Guide | Cli</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/cli/ssl-certificate-setup"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Trust SSL Certificate Guide | Cli"><meta data-rh="true" name="description" content="This guide explains how to trust the self-signed CA certificate on different operating systems and browsers so your HTTPS connection works without warnings."><meta data-rh="true" property="og:description" content="This guide explains how to trust the self-signed CA certificate on different operating systems and browsers so your HTTPS connection works without warnings."><link data-rh="true" rel="icon" href="/cli/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/cli/ssl-certificate-setup"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/ssl-certificate-setup" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/ssl-certificate-setup" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Trust SSL Certificate Guide","item":"https://pui.ice.com/cli/ssl-certificate-setup"}]}</script><link rel="stylesheet" href="/cli/assets/css/styles.690bd141.css">
7
- <script src="/cli/assets/js/runtime~main.da6a4745.js" defer="defer"></script>
8
- <script src="/cli/assets/js/main.0c8eaec6.js" defer="defer"></script>
7
+ <script src="/cli/assets/js/runtime~main.cc39bdb0.js" defer="defer"></script>
8
+ <script src="/cli/assets/js/main.b803b389.js" defer="defer"></script>
9
9
  </head>
10
10
  <body class="navigation-with-keyboard">
11
11
  <svg style="display: none;"><defs>
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="generator" content="Docusaurus v3.9.2">
6
6
  <title data-rh="true">Usage Guide | Cli</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/cli/usage-guide"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Usage Guide | Cli"><meta data-rh="true" name="description" content="This guide provides detailed documentation for all available commands in @elliemae/pui-cli."><meta data-rh="true" property="og:description" content="This guide provides detailed documentation for all available commands in @elliemae/pui-cli."><link data-rh="true" rel="icon" href="/cli/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/cli/usage-guide"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/usage-guide" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/usage-guide" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Usage Guide","item":"https://pui.ice.com/cli/usage-guide"}]}</script><link rel="stylesheet" href="/cli/assets/css/styles.690bd141.css">
7
- <script src="/cli/assets/js/runtime~main.da6a4745.js" defer="defer"></script>
8
- <script src="/cli/assets/js/main.0c8eaec6.js" defer="defer"></script>
7
+ <script src="/cli/assets/js/runtime~main.cc39bdb0.js" defer="defer"></script>
8
+ <script src="/cli/assets/js/main.b803b389.js" defer="defer"></script>
9
9
  </head>
10
10
  <body class="navigation-with-keyboard">
11
11
  <svg style="display: none;"><defs>
@@ -21,6 +21,7 @@
21
21
  <li class=""><a href="#linting-commands" class="">Linting Commands</a></li>
22
22
  <li class=""><a href="#documentation-commands" class="">Documentation Commands</a></li>
23
23
  <li class=""><a href="#utility-commands" class="">Utility Commands</a></li>
24
+ <li class=""><a href="#framework-chunk-splitting" class="">Framework Chunk Splitting</a></li>
24
25
  </ul>
25
26
  <h2 class="anchor anchorTargetStickyNavbar_vbpd" id="build-commands">Build Commands<a href="#build-commands" class="hash-link" aria-label="Direct link to Build Commands" title="Direct link to Build Commands" translate="no">​</a></h2>
26
27
  <h3 class="anchor anchorTargetStickyNavbar_vbpd" id="pui-cli-build"><code>pui-cli build</code><a href="#pui-cli-build" class="hash-link" aria-label="Direct link to pui-cli-build" title="Direct link to pui-cli-build" translate="no">​</a></h3>
@@ -358,6 +359,36 @@
358
359
  <li class="">Use <code>--silent</code> in CI to reduce output</li>
359
360
  <li class="">Run <code>lint --js</code> and <code>lint --css</code> separately for faster feedback</li>
360
361
  </ul>
362
+ <h3 class="anchor anchorTargetStickyNavbar_vbpd" id="framework-chunk-splitting">Framework Chunk Splitting<a href="#framework-chunk-splitting" class="hash-link" aria-label="Direct link to Framework Chunk Splitting" title="Direct link to Framework Chunk Splitting" translate="no">​</a></h3>
363
+ <p><code>pui-cli</code> supports an opt-in <strong>framework chunk</strong> that separates React core libraries into a dedicated bundle. Because the framework changes far less frequently than other vendor dependencies, this improves long-term browser caching and reduces the amount of JavaScript users re-download on routine releases.</p>
364
+ <p><strong>How it works</strong></p>
365
+ <p>When enabled, the production (and dev) Webpack build creates three vendor-level chunks instead of two:</p>
366
+ <table><thead><tr><th>Chunk</th><th>Contents</th></tr></thead><tbody><tr><td><code>emui.js</code></td><td><code>@elliemae/*</code> packages (design system, SDK, diagnostics, etc.)</td></tr><tr><td><code>framework.js</code></td><td><code>react</code>, <code>react-dom</code>, <code>scheduler</code>, <code>react-router</code>, <code>react-router-dom</code>, <code>history</code>, <code>react-is</code></td></tr><tr><td><code>vendors.js</code></td><td>Everything else from <code>node_modules</code></td></tr></tbody></table>
367
+ <p>Without the flag, the default two-chunk layout is preserved (<code>emui.js</code> + <code>vendors.js</code>).</p>
368
+ <p><strong>Enabling the flag</strong></p>
369
+ <p>Add the following to your application&#x27;s <code>.env</code> file:</p>
370
+ <div class="language-env codeBlockContainer_tlJr theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_huT7"><pre tabindex="0" class="prism-code language-env codeBlock_viiu thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FzDQ"><span class="token-line" style="color:#393A34"><span class="token plain">SPLIT_FRAMEWORK_CHUNK=true</span><br></span></code></pre></div></div>
371
+ <p>The flag is read at build time. No changes to <code>pui-cli</code> itself are needed.</p>
372
+ <p><strong>Required application updates</strong></p>
373
+ <p>After enabling the flag you must update three places in your application to include <code>framework.js</code> in the script loading order.</p>
374
+ <p><strong>1. <code>index-app-loader.html</code></strong></p>
375
+ <p>If your application uses <code>pui-app-loader</code>, update the <code>bodyScripts</code> array to include <code>framework.js</code> <strong>before</strong> <code>vendors.js</code>:</p>
376
+ <div class="language-javascript codeBlockContainer_tlJr theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_huT7"><pre tabindex="0" class="prism-code language-javascript codeBlock_viiu thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FzDQ"><span class="token-line" style="color:#393A34"><span class="token plain">emuiAppLoader</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">load</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token literal-property property" style="color:#36acaa">appId</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;loanapp&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token literal-property property" style="color:#36acaa">headScripts</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token literal-property property" style="color:#36acaa">bodyScripts</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">&#x27;runtime~app.js&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;framework.js&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;vendors.js&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;emui.js&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;app.js&#x27;</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token literal-property property" style="color:#36acaa">styles</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">&#x27;vendors.css&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;emui.css&#x27;</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token literal-property property" style="color:#36acaa">isJsModule</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">true</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></span></code></pre></div></div>
377
+ <p><strong>2. <code>app.config.json</code> — <code>microFrontendApps</code> file lists</strong></p>
378
+ <p>Any microapp built with the framework chunk enabled must list <code>framework.js</code> in its <code>development.files</code> and <code>production.files</code> arrays. The host app&#x27;s <code>app.config.json</code> must reflect this so that <code>app-bridge</code> loads the scripts in the correct order.</p>
379
+ <p>Development example:</p>
380
+ <div class="language-json codeBlockContainer_tlJr theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_huT7"><pre tabindex="0" class="prism-code language-json codeBlock_viiu thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FzDQ"><span class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">&quot;microFrontendApps&quot;</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">&quot;myapp&quot;</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">&quot;name&quot;</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;My App&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">&quot;hostUrl&quot;</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;./myapp&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">&quot;development&quot;</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">&quot;files&quot;</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;https://cdn.mortgagetech.q1.ice.com/pui-diagnostics@3&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;https://cdn.mortgagetech.q1.ice.com/pui-logrocket@1&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;js/global.js&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;framework.js&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;emui.js&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;vendors.js&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;app.js&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre></div></div>
381
+ <p>Production example:</p>
382
+ <div class="language-json codeBlockContainer_tlJr theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_huT7"><pre tabindex="0" class="prism-code language-json codeBlock_viiu thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FzDQ"><span class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">&quot;microFrontendApps&quot;</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">&quot;myapp&quot;</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">&quot;name&quot;</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;My App&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">&quot;hostUrl&quot;</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;./myapp&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">&quot;production&quot;</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">&quot;files&quot;</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;https://cdn.mortgagetech.q1.ice.com/pui-diagnostics@3&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;https://cdn.mortgagetech.q1.ice.com/pui-logrocket@1&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;js/global.js&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;runtime~app.js&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;framework.js&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;emui.js&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;vendors.js&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;app.js&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;emui.css&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;vendors.css&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre></div></div>
383
+ <blockquote>
384
+ <p><strong>Load order matters.</strong> <code>framework.js</code> must appear before <code>vendors.js</code> and <code>emui.js</code> because both depend on React.</p>
385
+ </blockquote>
386
+ <p><strong>3. Verify the build output</strong></p>
387
+ <p>After enabling the flag, run a production build and confirm the new chunk appears:</p>
388
+ <div class="language-bash codeBlockContainer_tlJr theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_huT7"><pre tabindex="0" class="prism-code language-bash codeBlock_viiu thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_FzDQ"><span class="token-line" style="color:#393A34"><span class="token plain">pnpm build</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ls build/latest/js/framework.*.js</span><br></span></code></pre></div></div>
389
+ <p>You should see a hashed file like <code>framework.abc123.js</code> alongside the existing <code>emui</code>, <code>vendors</code>, and <code>app</code> chunks.</p>
390
+ <p><strong>Disabling the flag</strong></p>
391
+ <p>Remove <code>SPLIT_FRAMEWORK_CHUNK=true</code> from <code>.env</code> (or set it to <code>false</code>), then reverse the file-list changes above — remove <code>framework.js</code> from <code>index-app-loader.html</code> and <code>app.config.json</code>. The build will revert to the default two-chunk layout.</p>
361
392
  <h2 class="anchor anchorTargetStickyNavbar_vbpd" id="troubleshooting">Troubleshooting<a href="#troubleshooting" class="hash-link" aria-label="Direct link to Troubleshooting" title="Direct link to Troubleshooting" translate="no">​</a></h2>
362
393
  <h3 class="anchor anchorTargetStickyNavbar_vbpd" id="build-issues">Build Issues<a href="#build-issues" class="hash-link" aria-label="Direct link to Build Issues" title="Direct link to Build Issues" translate="no">​</a></h3>
363
394
  <p><strong>Error: Module not found</strong></p>
@@ -380,6 +411,6 @@
380
411
  <ul>
381
412
  <li class="">Review the documentation</li>
382
413
  <li class="">Contact the UI Platform team via ui-platform teams channel</li>
383
- </ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YY1h"><a href="https://git.elliemae.io/platform-ui/pui-cli.git/docs/usage-guide.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_edd8" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_T6th"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/cli/ssl-certificate-setup"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Trust SSL Certificate Guide</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents__Ulr thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#table-of-contents" class="table-of-contents__link toc-highlight">Table of Contents</a></li><li><a href="#build-commands" class="table-of-contents__link toc-highlight">Build Commands</a><ul><li><a href="#pui-cli-build" class="table-of-contents__link toc-highlight"><code>pui-cli build</code></a></li><li><a href="#pui-cli-buildcdn" class="table-of-contents__link toc-highlight"><code>pui-cli buildCDN</code></a></li><li><a href="#pui-cli-pack" class="table-of-contents__link toc-highlight"><code>pui-cli pack</code></a></li></ul></li><li><a href="#development-commands" class="table-of-contents__link toc-highlight">Development Commands</a><ul><li><a href="#pui-cli-start" class="table-of-contents__link toc-highlight"><code>pui-cli start</code></a></li><li><a href="#pui-cli-storybook" class="table-of-contents__link toc-highlight"><code>pui-cli storybook</code></a></li></ul></li><li><a href="#testing-commands" class="table-of-contents__link toc-highlight">Testing Commands</a><ul><li><a href="#pui-cli-test" class="table-of-contents__link toc-highlight"><code>pui-cli test</code></a></li><li><a href="#pui-cli-vitest" class="table-of-contents__link toc-highlight"><code>pui-cli vitest</code></a></li></ul></li><li><a href="#linting-commands" class="table-of-contents__link toc-highlight">Linting Commands</a><ul><li><a href="#pui-cli-lint" class="table-of-contents__link toc-highlight"><code>pui-cli lint</code></a></li><li><a href="#pui-cli-tscheck" class="table-of-contents__link toc-highlight"><code>pui-cli tscheck</code></a></li></ul></li><li><a href="#documentation-commands" class="table-of-contents__link toc-highlight">Documentation Commands</a><ul><li><a href="#pui-cli-gendoc" class="table-of-contents__link toc-highlight"><code>pui-cli gendoc</code></a></li></ul></li><li><a href="#utility-commands" class="table-of-contents__link toc-highlight">Utility Commands</a><ul><li><a href="#pui-cli-version" class="table-of-contents__link toc-highlight"><code>pui-cli version</code></a></li><li><a href="#pui-cli-codemod" class="table-of-contents__link toc-highlight"><code>pui-cli codemod</code></a></li></ul></li><li><a href="#advanced-usage" class="table-of-contents__link toc-highlight">Advanced Usage</a><ul><li><a href="#using-pui-cli-in-npm-scripts" class="table-of-contents__link toc-highlight">Using pui-cli in npm scripts</a></li><li><a href="#cicd-integration" class="table-of-contents__link toc-highlight">CI/CD Integration</a></li><li><a href="#using-exported-configurations" class="table-of-contents__link toc-highlight">Using Exported Configurations</a></li></ul></li><li><a href="#configuration-priority" class="table-of-contents__link toc-highlight">Configuration Priority</a></li><li><a href="#best-practices" class="table-of-contents__link toc-highlight">Best Practices</a><ul><li><a href="#development-workflow" class="table-of-contents__link toc-highlight">Development Workflow</a></li><li><a href="#library-development-workflow" class="table-of-contents__link toc-highlight">Library Development Workflow</a></li><li><a href="#performance-tips" class="table-of-contents__link toc-highlight">Performance Tips</a></li></ul></li><li><a href="#troubleshooting" class="table-of-contents__link toc-highlight">Troubleshooting</a><ul><li><a href="#build-issues" class="table-of-contents__link toc-highlight">Build Issues</a></li><li><a href="#test-issues" class="table-of-contents__link toc-highlight">Test Issues</a></li><li><a href="#linting-issues" class="table-of-contents__link toc-highlight">Linting Issues</a></li></ul></li><li><a href="#additional-resources" class="table-of-contents__link toc-highlight">Additional Resources</a></li><li><a href="#need-help" class="table-of-contents__link toc-highlight">Need Help?</a></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/cli/">Getting Started</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://icemortgagetechnology.slack.com/archives/C01M49EGP6Z" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink__D7Q"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://git.elliemae.io/platform-ui/pui-cli.git" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink__D7Q"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2026 ICE.</div></div></div></footer></div>
414
+ </ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_YY1h"><a href="https://git.elliemae.io/platform-ui/pui-cli.git/docs/usage-guide.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_edd8" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_T6th"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/cli/ssl-certificate-setup"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Trust SSL Certificate Guide</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents__Ulr thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#table-of-contents" class="table-of-contents__link toc-highlight">Table of Contents</a></li><li><a href="#build-commands" class="table-of-contents__link toc-highlight">Build Commands</a><ul><li><a href="#pui-cli-build" class="table-of-contents__link toc-highlight"><code>pui-cli build</code></a></li><li><a href="#pui-cli-buildcdn" class="table-of-contents__link toc-highlight"><code>pui-cli buildCDN</code></a></li><li><a href="#pui-cli-pack" class="table-of-contents__link toc-highlight"><code>pui-cli pack</code></a></li></ul></li><li><a href="#development-commands" class="table-of-contents__link toc-highlight">Development Commands</a><ul><li><a href="#pui-cli-start" class="table-of-contents__link toc-highlight"><code>pui-cli start</code></a></li><li><a href="#pui-cli-storybook" class="table-of-contents__link toc-highlight"><code>pui-cli storybook</code></a></li></ul></li><li><a href="#testing-commands" class="table-of-contents__link toc-highlight">Testing Commands</a><ul><li><a href="#pui-cli-test" class="table-of-contents__link toc-highlight"><code>pui-cli test</code></a></li><li><a href="#pui-cli-vitest" class="table-of-contents__link toc-highlight"><code>pui-cli vitest</code></a></li></ul></li><li><a href="#linting-commands" class="table-of-contents__link toc-highlight">Linting Commands</a><ul><li><a href="#pui-cli-lint" class="table-of-contents__link toc-highlight"><code>pui-cli lint</code></a></li><li><a href="#pui-cli-tscheck" class="table-of-contents__link toc-highlight"><code>pui-cli tscheck</code></a></li></ul></li><li><a href="#documentation-commands" class="table-of-contents__link toc-highlight">Documentation Commands</a><ul><li><a href="#pui-cli-gendoc" class="table-of-contents__link toc-highlight"><code>pui-cli gendoc</code></a></li></ul></li><li><a href="#utility-commands" class="table-of-contents__link toc-highlight">Utility Commands</a><ul><li><a href="#pui-cli-version" class="table-of-contents__link toc-highlight"><code>pui-cli version</code></a></li><li><a href="#pui-cli-codemod" class="table-of-contents__link toc-highlight"><code>pui-cli codemod</code></a></li></ul></li><li><a href="#advanced-usage" class="table-of-contents__link toc-highlight">Advanced Usage</a><ul><li><a href="#using-pui-cli-in-npm-scripts" class="table-of-contents__link toc-highlight">Using pui-cli in npm scripts</a></li><li><a href="#cicd-integration" class="table-of-contents__link toc-highlight">CI/CD Integration</a></li><li><a href="#using-exported-configurations" class="table-of-contents__link toc-highlight">Using Exported Configurations</a></li></ul></li><li><a href="#configuration-priority" class="table-of-contents__link toc-highlight">Configuration Priority</a></li><li><a href="#best-practices" class="table-of-contents__link toc-highlight">Best Practices</a><ul><li><a href="#development-workflow" class="table-of-contents__link toc-highlight">Development Workflow</a></li><li><a href="#library-development-workflow" class="table-of-contents__link toc-highlight">Library Development Workflow</a></li><li><a href="#performance-tips" class="table-of-contents__link toc-highlight">Performance Tips</a></li><li><a href="#framework-chunk-splitting" class="table-of-contents__link toc-highlight">Framework Chunk Splitting</a></li></ul></li><li><a href="#troubleshooting" class="table-of-contents__link toc-highlight">Troubleshooting</a><ul><li><a href="#build-issues" class="table-of-contents__link toc-highlight">Build Issues</a></li><li><a href="#test-issues" class="table-of-contents__link toc-highlight">Test Issues</a></li><li><a href="#linting-issues" class="table-of-contents__link toc-highlight">Linting Issues</a></li></ul></li><li><a href="#additional-resources" class="table-of-contents__link toc-highlight">Additional Resources</a></li><li><a href="#need-help" class="table-of-contents__link toc-highlight">Need Help?</a></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/cli/">Getting Started</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://icemortgagetechnology.slack.com/archives/C01M49EGP6Z" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink__D7Q"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://git.elliemae.io/platform-ui/pui-cli.git" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink__D7Q"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2026 ICE.</div></div></div></footer></div>
384
415
  </body>
385
416
  </html>
@@ -91,28 +91,32 @@ const mapToFolder = (dependencies, folder) => dependencies.reduce(
91
91
  );
92
92
  const getAlias = () => {
93
93
  const monorepoRoot = (0, import_utils.findMonoRepoRoot)(process.cwd()) || "";
94
- return mapToFolder(
95
- [
96
- "@babel/runtime",
97
- "react",
98
- "react-dom",
99
- "react-redux",
100
- "redux",
101
- "redux-saga",
102
- "moment",
103
- "lodash",
104
- "styled-components",
105
- "immer",
106
- "react-dates",
107
- "react-select",
108
- "react-spring",
109
- "react-transition-group",
110
- "@elliemae/pui-cli",
111
- "@elliemae/pui-app-sdk$",
112
- "@elliemae/pui-theme$"
113
- ],
114
- import_node_path.default.join(monorepoRoot, "./node_modules")
115
- );
94
+ const folder = import_node_path.default.join(monorepoRoot, "./node_modules");
95
+ return {
96
+ ...mapToFolder(
97
+ [
98
+ "@babel/runtime",
99
+ "react",
100
+ "react-dom",
101
+ "react-redux",
102
+ "redux",
103
+ "redux-saga",
104
+ "moment",
105
+ "lodash",
106
+ "styled-components",
107
+ "immer",
108
+ "react-dates",
109
+ "react-select",
110
+ "react-spring",
111
+ "react-transition-group",
112
+ "@elliemae/pui-cli",
113
+ "@elliemae/pui-app-sdk$",
114
+ "@elliemae/pui-theme$"
115
+ ],
116
+ folder
117
+ ),
118
+ "lodash-es": import_node_path.default.resolve(`${folder}/lodash`)
119
+ };
116
120
  };
117
121
  const getLibraryAlias = (name, alias) => {
118
122
  const monorepoRoot = (0, import_utils.findMonoRepoRoot)(process.cwd()) || "";
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var prop_types_shim_exports = {};
20
+ __export(prop_types_shim_exports, {
21
+ any: () => any,
22
+ array: () => array,
23
+ arrayOf: () => arrayOf,
24
+ bigint: () => bigint,
25
+ bool: () => bool,
26
+ checkPropTypes: () => checkPropTypes,
27
+ default: () => prop_types_shim_default,
28
+ element: () => element,
29
+ elementType: () => elementType,
30
+ exact: () => exact,
31
+ func: () => func,
32
+ instanceOf: () => instanceOf,
33
+ node: () => node,
34
+ number: () => number,
35
+ object: () => object,
36
+ objectOf: () => objectOf,
37
+ oneOf: () => oneOf,
38
+ oneOfType: () => oneOfType,
39
+ resetWarningCache: () => resetWarningCache,
40
+ shape: () => shape,
41
+ string: () => string,
42
+ symbol: () => symbol
43
+ });
44
+ module.exports = __toCommonJS(prop_types_shim_exports);
45
+ const shim = function noop() {
46
+ return shim;
47
+ };
48
+ shim.isRequired = shim;
49
+ const createPropTypes = () => {
50
+ const handler = {
51
+ // eslint-disable-next-line no-underscore-dangle
52
+ get(_target, prop) {
53
+ if (prop === "__esModule") return true;
54
+ if (prop === "default") return pt;
55
+ return shim;
56
+ }
57
+ };
58
+ const pt = typeof Proxy !== "undefined" ? new Proxy(shim, handler) : shim;
59
+ pt.checkPropTypes = shim;
60
+ pt.resetWarningCache = shim;
61
+ pt.PropTypes = pt;
62
+ return pt;
63
+ };
64
+ const propTypes = createPropTypes();
65
+ var prop_types_shim_default = propTypes;
66
+ const array = shim;
67
+ const bigint = shim;
68
+ const bool = shim;
69
+ const func = shim;
70
+ const number = shim;
71
+ const object = shim;
72
+ const string = shim;
73
+ const symbol = shim;
74
+ const any = shim;
75
+ const arrayOf = shim;
76
+ const element = shim;
77
+ const elementType = shim;
78
+ const instanceOf = shim;
79
+ const node = shim;
80
+ const objectOf = shim;
81
+ const oneOf = shim;
82
+ const oneOfType = shim;
83
+ const shape = shim;
84
+ const exact = shim;
85
+ const checkPropTypes = shim;
86
+ const resetWarningCache = shim;
@@ -80,6 +80,7 @@ const plugins = [
80
80
  to: "./latest/js",
81
81
  toType: "dir",
82
82
  noErrorOnMissing: true,
83
+ globOptions: { ignore: ["**/qa/**"] },
83
84
  info: { minimized: true }
84
85
  },
85
86
  // {
@@ -93,7 +93,15 @@ const devConfig = {
93
93
  emui: {
94
94
  name: "emui",
95
95
  test: /[\\/]node_modules[\\/](@elliemae)[\\/]/,
96
- priority: 1
96
+ priority: process.env.SPLIT_FRAMEWORK_CHUNK === "true" ? 3 : 1
97
+ },
98
+ ...process.env.SPLIT_FRAMEWORK_CHUNK === "true" && {
99
+ framework: {
100
+ name: "framework",
101
+ test: /[\\/]node_modules[\\/](react|react-dom|scheduler|react-router|react-router-dom|history|react-is)[\\/]/,
102
+ priority: 2,
103
+ enforce: true
104
+ }
97
105
  },
98
106
  vendors: {
99
107
  name: "vendors",
@@ -32,6 +32,7 @@ __export(webpack_prod_babel_exports, {
32
32
  });
33
33
  module.exports = __toCommonJS(webpack_prod_babel_exports);
34
34
  var import_node_path = __toESM(require("node:path"), 1);
35
+ var import_node_url = require("node:url");
35
36
  var import_html_webpack_plugin = __toESM(require("html-webpack-plugin"), 1);
36
37
  var import_workbox_webpack_plugin = require("workbox-webpack-plugin");
37
38
  var import_mini_css_extract_plugin = __toESM(require("mini-css-extract-plugin"), 1);
@@ -40,6 +41,9 @@ var import_esbuild_loader = require("esbuild-loader");
40
41
  var import_browserslist_to_esbuild = __toESM(require("browserslist-to-esbuild"), 1);
41
42
  var import_webpack_base_babel = require("./webpack.base.babel.js");
42
43
  var import_helpers = require("./helpers.js");
44
+ const import_meta = {};
45
+ const __dirname = import_node_path.default.dirname((0, import_node_url.fileURLToPath)(import_meta.url));
46
+ const propTypesShim = import_node_path.default.resolve(__dirname, "prop-types-shim.js");
43
47
  const getProdConfig = ({ latestVersion = true } = {}) => {
44
48
  const { buildPath } = (0, import_helpers.getPaths)(latestVersion);
45
49
  return {
@@ -67,13 +71,25 @@ const getProdConfig = ({ latestVersion = true } = {}) => {
67
71
  })
68
72
  ],
69
73
  runtimeChunk: true,
74
+ // Three-tier chunking strategy (opt-in via SPLIT_FRAMEWORK_CHUNK=true):
75
+ // emui – @elliemae packages (design system, SDK)
76
+ // framework – React core + router (changes rarely, great cache hit)
77
+ // vendors – everything else from node_modules
70
78
  splitChunks: {
71
79
  chunks: "all",
72
80
  cacheGroups: {
73
81
  emui: {
74
82
  name: "emui",
75
83
  test: /[\\/]node_modules[\\/](@elliemae)[\\/]/,
76
- priority: 1
84
+ priority: process.env.SPLIT_FRAMEWORK_CHUNK === "true" ? 3 : 1
85
+ },
86
+ ...process.env.SPLIT_FRAMEWORK_CHUNK === "true" && {
87
+ framework: {
88
+ name: "framework",
89
+ test: /[\\/]node_modules[\\/](react|react-dom|scheduler|react-router|react-router-dom|history|react-is)[\\/]/,
90
+ priority: 2,
91
+ enforce: true
92
+ }
77
93
  },
78
94
  vendors: {
79
95
  name: "vendors",
@@ -101,6 +117,11 @@ const getProdConfig = ({ latestVersion = true } = {}) => {
101
117
  })
102
118
  ],
103
119
  devtool: "source-map",
120
+ resolve: {
121
+ alias: {
122
+ "prop-types": propTypesShim
123
+ }
124
+ },
104
125
  performance: {
105
126
  assetFilter: (assetFilename) => !/(\.map$)|(^(main\.|favicon\.))/.test(assetFilename)
106
127
  }
@@ -41,28 +41,32 @@ const mapToFolder = (dependencies, folder) => dependencies.reduce(
41
41
  );
42
42
  const getAlias = () => {
43
43
  const monorepoRoot = findMonoRepoRoot(process.cwd()) || "";
44
- return mapToFolder(
45
- [
46
- "@babel/runtime",
47
- "react",
48
- "react-dom",
49
- "react-redux",
50
- "redux",
51
- "redux-saga",
52
- "moment",
53
- "lodash",
54
- "styled-components",
55
- "immer",
56
- "react-dates",
57
- "react-select",
58
- "react-spring",
59
- "react-transition-group",
60
- "@elliemae/pui-cli",
61
- "@elliemae/pui-app-sdk$",
62
- "@elliemae/pui-theme$"
63
- ],
64
- path.join(monorepoRoot, "./node_modules")
65
- );
44
+ const folder = path.join(monorepoRoot, "./node_modules");
45
+ return {
46
+ ...mapToFolder(
47
+ [
48
+ "@babel/runtime",
49
+ "react",
50
+ "react-dom",
51
+ "react-redux",
52
+ "redux",
53
+ "redux-saga",
54
+ "moment",
55
+ "lodash",
56
+ "styled-components",
57
+ "immer",
58
+ "react-dates",
59
+ "react-select",
60
+ "react-spring",
61
+ "react-transition-group",
62
+ "@elliemae/pui-cli",
63
+ "@elliemae/pui-app-sdk$",
64
+ "@elliemae/pui-theme$"
65
+ ],
66
+ folder
67
+ ),
68
+ "lodash-es": path.resolve(`${folder}/lodash`)
69
+ };
66
70
  };
67
71
  const getLibraryAlias = (name, alias) => {
68
72
  const monorepoRoot = findMonoRepoRoot(process.cwd()) || "";
@@ -0,0 +1,66 @@
1
+ const shim = function noop() {
2
+ return shim;
3
+ };
4
+ shim.isRequired = shim;
5
+ const createPropTypes = () => {
6
+ const handler = {
7
+ // eslint-disable-next-line no-underscore-dangle
8
+ get(_target, prop) {
9
+ if (prop === "__esModule") return true;
10
+ if (prop === "default") return pt;
11
+ return shim;
12
+ }
13
+ };
14
+ const pt = typeof Proxy !== "undefined" ? new Proxy(shim, handler) : shim;
15
+ pt.checkPropTypes = shim;
16
+ pt.resetWarningCache = shim;
17
+ pt.PropTypes = pt;
18
+ return pt;
19
+ };
20
+ const propTypes = createPropTypes();
21
+ var prop_types_shim_default = propTypes;
22
+ const array = shim;
23
+ const bigint = shim;
24
+ const bool = shim;
25
+ const func = shim;
26
+ const number = shim;
27
+ const object = shim;
28
+ const string = shim;
29
+ const symbol = shim;
30
+ const any = shim;
31
+ const arrayOf = shim;
32
+ const element = shim;
33
+ const elementType = shim;
34
+ const instanceOf = shim;
35
+ const node = shim;
36
+ const objectOf = shim;
37
+ const oneOf = shim;
38
+ const oneOfType = shim;
39
+ const shape = shim;
40
+ const exact = shim;
41
+ const checkPropTypes = shim;
42
+ const resetWarningCache = shim;
43
+ export {
44
+ any,
45
+ array,
46
+ arrayOf,
47
+ bigint,
48
+ bool,
49
+ checkPropTypes,
50
+ prop_types_shim_default as default,
51
+ element,
52
+ elementType,
53
+ exact,
54
+ func,
55
+ instanceOf,
56
+ node,
57
+ number,
58
+ object,
59
+ objectOf,
60
+ oneOf,
61
+ oneOfType,
62
+ resetWarningCache,
63
+ shape,
64
+ string,
65
+ symbol
66
+ };
@@ -54,6 +54,7 @@ const plugins = [
54
54
  to: "./latest/js",
55
55
  toType: "dir",
56
56
  noErrorOnMissing: true,
57
+ globOptions: { ignore: ["**/qa/**"] },
57
58
  info: { minimized: true }
58
59
  },
59
60
  // {
@@ -63,7 +63,15 @@ const devConfig = {
63
63
  emui: {
64
64
  name: "emui",
65
65
  test: /[\\/]node_modules[\\/](@elliemae)[\\/]/,
66
- priority: 1
66
+ priority: process.env.SPLIT_FRAMEWORK_CHUNK === "true" ? 3 : 1
67
+ },
68
+ ...process.env.SPLIT_FRAMEWORK_CHUNK === "true" && {
69
+ framework: {
70
+ name: "framework",
71
+ test: /[\\/]node_modules[\\/](react|react-dom|scheduler|react-router|react-router-dom|history|react-is)[\\/]/,
72
+ priority: 2,
73
+ enforce: true
74
+ }
67
75
  },
68
76
  vendors: {
69
77
  name: "vendors",