@elliemae/pui-cli 9.0.0-alpha.10 → 9.0.0-alpha.11
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.
- package/build/docs/404.html +2 -2
- package/build/docs/api/functions/loadRoutes/index.html +2 -2
- package/build/docs/api/index.html +2 -2
- package/build/docs/api/type-aliases/LIB_NAME/index.html +2 -2
- package/build/docs/api/variables/babelConfig/index.html +2 -2
- package/build/docs/api/variables/commitlintConfig/index.html +2 -2
- package/build/docs/api/variables/eslintBaseConfig/index.html +2 -2
- package/build/docs/api/variables/eslintConfig/index.html +2 -2
- package/build/docs/api/variables/eslintFlatBaseConfig/index.html +2 -2
- package/build/docs/api/variables/eslintFlatBaseConfigStrict/index.html +2 -2
- package/build/docs/api/variables/eslintFlatConfig/index.html +2 -2
- package/build/docs/api/variables/eslintFlatConfigStrict/index.html +2 -2
- package/build/docs/api/variables/jestConfig/index.html +2 -2
- package/build/docs/api/variables/jestNodeConfig/index.html +2 -2
- package/build/docs/api/variables/lintStagedConfig/index.html +2 -2
- package/build/docs/api/variables/prettierConfig/index.html +2 -2
- package/build/docs/api/variables/stylelintConfig/index.html +2 -2
- package/build/docs/api/variables/vitestConfig/index.html +2 -2
- package/build/docs/assets/js/13097d8d.af480dfd.js +1 -0
- package/build/docs/assets/js/{main.00e13c37.js → main.7f815b7e.js} +2 -2
- package/build/docs/assets/js/{runtime~main.cb214d1a.js → runtime~main.f7c5bef0.js} +1 -1
- package/build/docs/eslint-rules-migration/index.html +2 -2
- package/build/docs/index.html +2 -2
- package/build/docs/pui-cli-9-migration/index.html +34 -4
- package/build/docs/ssl-certificate-setup/index.html +2 -2
- package/build/docs/stylelint-migration/index.html +2 -2
- package/build/docs/usage-guide/index.html +2 -2
- package/dist/cjs/skills/migrate-to-pui-cli-9/SKILL.md +43 -5
- package/dist/esm/skills/migrate-to-pui-cli-9/SKILL.md +43 -5
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/lib/skills/migrate-to-pui-cli-9/SKILL.md +43 -5
- package/package.json +4 -5
- package/build/docs/assets/js/13097d8d.c1821d28.js +0 -1
- /package/build/docs/assets/js/{main.00e13c37.js.LICENSE.txt → main.7f815b7e.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";var e,a,d,r,t,b={},
|
|
1
|
+
(()=>{"use strict";var e,a,d,r,t,b={},c={};function f(e){var a=c[e];if(void 0!==a)return a.exports;var d=c[e]={id:e,loaded:!1,exports:{}};return b[e].call(d.exports,d,d.exports,f),d.loaded=!0,d.exports}f.m=b,f.c=c,e=[],f.O=(a,d,r,t)=>{if(!d){var b=1/0;for(i=0;i<e.length;i++){for(var[d,r,t]=e[i],c=!0,o=0;o<d.length;o++)(!1&t||b>=t)&&Object.keys(f.O).every(e=>f.O[e](d[o]))?d.splice(o--,1):(c=!1,t<b&&(b=t));if(c){e.splice(i--,1);var n=r();void 0!==n&&(a=n)}}return a}t=t||0;for(var i=e.length;i>0&&e[i-1][2]>t;i--)e[i]=e[i-1];e[i]=[d,r,t]},f.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return f.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var t=Object.create(null);f.r(t);var b={};a=a||[null,d({}),d([]),d(d)];for(var c=2&r&&e;("object"==typeof c||"function"==typeof c)&&!~a.indexOf(c);c=d(c))Object.getOwnPropertyNames(c).forEach(a=>b[a]=()=>e[a]);return b.default=()=>e,f.d(t,b),t},f.d=(e,a)=>{for(var d in a)f.o(a,d)&&!f.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce((a,d)=>(f.f[d](e,a),a),[])),f.u=e=>"assets/js/"+({594:"5e8c322a",1019:"4fb6949f",1091:"5fb3c522",1380:"5befad71",1572:"0a1d0315",1712:"0551d4dd",1724:"e5f79924",2113:"6bd11e52",2577:"f736c962",2960:"5d5f1db0",3361:"c377a04b",3891:"71f6d02b",4676:"80e87108",5455:"13097d8d",5742:"aba21aa0",5908:"04ee7372",5983:"dfd75424",6130:"16b7bc88",6264:"b7b585d8",6688:"6e96545e",7098:"a7bd4aaa",7581:"37d86055",7589:"232a0286",7613:"b8ac1d98",8155:"bde5209a",8401:"17896441",9048:"a94703ab",9577:"1b9df811",9647:"5e95c892"}[e]||e)+"."+{97:"70eddfb5",213:"e69351b3",242:"73516ab6",247:"e1522e52",594:"ef3b894b",821:"8d4e2a80",936:"c151b43f",1019:"369cc1b9",1091:"da5628e8",1126:"fa547e9c",1127:"f28430e6",1298:"fb0939c9",1380:"5f19afb5",1572:"fc8f91a7",1617:"b2623271",1700:"4f7a9007",1712:"ebb18f4f",1724:"c793a74d",2113:"08b95209",2297:"e63290f4",2399:"cc5803e0",2577:"dbd0d004",2673:"da75a556",2805:"f0505f8c",2960:"c5aa5afa",3361:"0f8625c6",3395:"eb3dad5b",3499:"2d5c6821",3552:"9272c0d9",3720:"8e7f36d4",3891:"cfd98385",3992:"0ac29b2f",4069:"301f1115",4134:"553b3645",4257:"9afce6ac",4676:"f9507b95",4772:"6294b364",4884:"9dbe23e5",5196:"98f7e06a",5248:"ee436cea",5428:"71752e9a",5455:"af480dfd",5742:"3bbcf0cc",5908:"eaa386ed",5964:"0728ed91",5968:"5f4ccba7",5983:"51c4e2cb",6130:"c3779e27",6264:"6d53e73f",6486:"68ae0007",6688:"30c1b801",6704:"2615a5c6",7080:"efd5ba6c",7098:"30ffad02",7201:"e90ba636",7344:"95656e38",7516:"b6668d60",7525:"a8d0db87",7540:"7a4353cf",7581:"47211796",7589:"33b2782b",7613:"62684003",7985:"8c6943d6",8049:"8ba75278",8152:"f2bebb2f",8155:"f5bca8b2",8290:"a4f7a2ca",8355:"864847a1",8389:"26a9caca",8401:"84339068",8585:"3cb09ff7",8788:"03856709",9048:"f1796514",9178:"50ac2954",9210:"1ac21da8",9354:"37ad86f9",9574:"b172d607",9577:"aaa95da1",9647:"f550b901",9852:"f77caf52",9953:"f6278635"}[e]+".js",f.miniCssF=e=>{},f.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},t="@elliemae/pui-cli:",f.l=(e,a,d,b)=>{if(r[e])r[e].push(a);else{var c,o;if(void 0!==d)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")==t+d){c=l;break}}c||(o=!0,(c=document.createElement("script")).charset="utf-8",f.nc&&c.setAttribute("nonce",f.nc),c.setAttribute("data-webpack",t+d),c.src=e),r[e]=[a];var u=(a,d)=>{c.onerror=c.onload=null,clearTimeout(s);var t=r[e];if(delete r[e],c.parentNode&&c.parentNode.removeChild(c),t&&t.forEach(e=>e(d)),a)return a(d)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=u.bind(null,c.onerror),c.onload=u.bind(null,c.onload),o&&document.head.appendChild(c)}},f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.dn=e=>{(Object.getOwnPropertyDescriptor(e,"name")||{}).writable||Object.defineProperty(e,"name",{value:"default",configurable:!0})},f.p="/cli/",f.gca=function(e){return e={17896441:"8401","5e8c322a":"594","4fb6949f":"1019","5fb3c522":"1091","5befad71":"1380","0a1d0315":"1572","0551d4dd":"1712",e5f79924:"1724","6bd11e52":"2113",f736c962:"2577","5d5f1db0":"2960",c377a04b:"3361","71f6d02b":"3891","80e87108":"4676","13097d8d":"5455",aba21aa0:"5742","04ee7372":"5908",dfd75424:"5983","16b7bc88":"6130",b7b585d8:"6264","6e96545e":"6688",a7bd4aaa:"7098","37d86055":"7581","232a0286":"7589",b8ac1d98:"7613",bde5209a:"8155",a94703ab:"9048","1b9df811":"9577","5e95c892":"9647"}[e]||e,f.p+f.u(e)},(()=>{var e={5354:0,1869:0};f.f.j=(a,d)=>{var r=f.o(e,a)?e[a]:void 0;if(0!==r)if(r)d.push(r[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var t=new Promise((d,t)=>r=e[a]=[d,t]);d.push(r[2]=t);var b=f.p+f.u(a),c=new Error;f.l(b,d=>{if(f.o(e,a)&&(0!==(r=e[a])&&(e[a]=void 0),r)){var t=d&&("load"===d.type?"missing":d.type),b=d&&d.target&&d.target.src;c.message="Loading chunk "+a+" failed.\n("+t+": "+b+")",c.name="ChunkLoadError",c.type=t,c.request=b,r[1](c)}},"chunk-"+a,a)}},f.O.j=a=>0===e[a];var a=(a,d)=>{var r,t,[b,c,o]=d,n=0;if(b.some(a=>0!==e[a])){for(r in c)f.o(c,r)&&(f.m[r]=c[r]);if(o)var i=o(f)}for(a&&a(d);n<b.length;n++)t=b[n],f.o(e,t)&&e[t]&&e[t][0](),e[t]=0;return f.O(i)},d=globalThis.webpackChunk_elliemae_pui_cli=globalThis.webpackChunk_elliemae_pui_cli||[];d.forEach(a.bind(null,0)),d.push=a.bind(null,d.push.bind(d))})()})();
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="generator" content="Docusaurus v3.10.1">
|
|
6
6
|
<title data-rh="true">ESLint rules migration guide (legacy → ESLint 10 flat config) | 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/eslint-rules-migration"><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="ESLint rules migration guide (legacy → ESLint 10 flat config) | Cli"><meta data-rh="true" name="description" content="This document compares the previous @elliemae/pui-cli ESLint setup (ESLint 8 + .eslintrc.cjs + Airbnb) with the current setup (ESLint 10 + eslint.config.mjs + typescript-eslint v8 flat config)."><meta data-rh="true" property="og:description" content="This document compares the previous @elliemae/pui-cli ESLint setup (ESLint 8 + .eslintrc.cjs + Airbnb) with the current setup (ESLint 10 + eslint.config.mjs + typescript-eslint v8 flat config)."><link data-rh="true" rel="icon" href="/cli/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/cli/eslint-rules-migration"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/eslint-rules-migration" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/eslint-rules-migration" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"ESLint rules migration guide (legacy → ESLint 10 flat config)","item":"https://pui.ice.com/cli/eslint-rules-migration"}]}</script><link rel="stylesheet" href="/cli/assets/css/styles.74603f39.css">
|
|
7
|
-
<script src="/cli/assets/js/runtime~main.
|
|
8
|
-
<script src="/cli/assets/js/main.
|
|
7
|
+
<script src="/cli/assets/js/runtime~main.f7c5bef0.js" defer="defer"></script>
|
|
8
|
+
<script src="/cli/assets/js/main.7f815b7e.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
11
|
<svg style="display: none;"><defs>
|
package/build/docs/index.html
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="generator" content="Docusaurus v3.10.1">
|
|
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.74603f39.css">
|
|
7
|
-
<script src="/cli/assets/js/runtime~main.
|
|
8
|
-
<script src="/cli/assets/js/main.
|
|
7
|
+
<script src="/cli/assets/js/runtime~main.f7c5bef0.js" defer="defer"></script>
|
|
8
|
+
<script src="/cli/assets/js/main.7f815b7e.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
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.10.1">
|
|
6
6
|
<title data-rh="true">pui-cli 9 migration 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/pui-cli-9-migration"><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 9 migration guide | Cli"><meta data-rh="true" name="description" content="This guide helps PUI consumers upgrade apps and libraries from pui-cli 8 to pui-cli 9."><meta data-rh="true" property="og:description" content="This guide helps PUI consumers upgrade apps and libraries from pui-cli 8 to pui-cli 9."><link data-rh="true" rel="icon" href="/cli/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/cli/pui-cli-9-migration"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/pui-cli-9-migration" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/pui-cli-9-migration" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"pui-cli 9 migration guide","item":"https://pui.ice.com/cli/pui-cli-9-migration"}]}</script><link rel="stylesheet" href="/cli/assets/css/styles.74603f39.css">
|
|
7
|
-
<script src="/cli/assets/js/runtime~main.
|
|
8
|
-
<script src="/cli/assets/js/main.
|
|
7
|
+
<script src="/cli/assets/js/runtime~main.f7c5bef0.js" defer="defer"></script>
|
|
8
|
+
<script src="/cli/assets/js/main.7f815b7e.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
11
|
<svg style="display: none;"><defs>
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
For ESLint rule-level detail, see <a class="" href="/cli/eslint-rules-migration">ESLint rules migration guide</a>.</p>
|
|
17
17
|
<hr>
|
|
18
18
|
<h2 class="anchor anchorTargetStickyNavbar_jFbF" id="at-a-glance">At a glance<a href="#at-a-glance" class="hash-link" aria-label="Direct link to At a glance" title="Direct link to At a glance" translate="no"></a></h2>
|
|
19
|
-
<table><thead><tr><th>Topic</th><th>pui-cli 8</th><th>pui-cli 9</th></tr></thead><tbody><tr><td>Node.js</td><td>20</td><td><strong>24</strong></td></tr><tr><td>pnpm</td><td>8–10</td><td><strong>11</strong></td></tr><tr><td>App/library bundler</td><td>Webpack</td><td><strong>Webpack</strong> (unchanged)</td></tr><tr><td>ESLint</td><td>8.x + <code>.eslintrc.cjs</code></td><td><strong>10.x</strong> + <code>eslint.config.mjs</code></td></tr><tr><td>Stylelint</td><td>15.x + <code>stylelint-config-styled-components</code></td><td><strong>17.x</strong> + <code>postcss-styled-syntax</code> (styled-components rules inlined)</td></tr><tr><td>Vitest (via <code>pui-cli vitest</code>)</td><td>1.x</td><td><strong>4.x</strong> (uses Vite internally; not the app bundler)</td></tr><tr><td>TypeScript lint</td><td><code>@typescript-eslint</code> v5</td><td><code>typescript-eslint</code> v8</td></tr><tr><td>Exported tsconfig</td><td><code>moduleResolution: "node"</code></td><td><strong><code>moduleResolution: "bundler"</code></strong></td></tr><tr><td>Shared config import</td><td><code>require('@elliemae/pui-cli').eslintConfig</code></td><td><code>import { eslintFlatConfig } from '@elliemae/pui-cli/eslint'</code></td></tr><tr><td>Stylelint import</td><td><code>require('@elliemae/pui-cli').stylelintConfig</code></td><td><code>import { stylelintConfig } from '@elliemae/pui-cli/stylelint'</code> (or keep CJS re-export)</td></tr><tr><td>semantic-release</td><td>21.x + <code>release.config.cjs</code></td><td><strong>25.x</strong> + <code>release.config.mjs</code> (ESM <code>extends</code> for shareable config)</td></tr><tr><td>Husky</td><td>8.x</td><td><strong>9.x</strong></td></tr><tr><td>Cursor skill</td><td>—</td><td><code>pui-cli skills install migrate-to-pui-cli-9 --target all</code></td></tr></tbody></table>
|
|
19
|
+
<table><thead><tr><th>Topic</th><th>pui-cli 8</th><th>pui-cli 9</th></tr></thead><tbody><tr><td>Node.js</td><td>20</td><td><strong>24</strong></td></tr><tr><td>pnpm</td><td>8–10</td><td><strong>11</strong></td></tr><tr><td>App/library bundler</td><td>Webpack</td><td><strong>Webpack</strong> (unchanged)</td></tr><tr><td>ESLint</td><td>8.x + <code>.eslintrc.cjs</code></td><td><strong>10.x</strong> + <code>eslint.config.mjs</code></td></tr><tr><td>Stylelint</td><td>15.x + <code>stylelint-config-styled-components</code></td><td><strong>17.x</strong> + <code>postcss-styled-syntax</code> (styled-components rules inlined)</td></tr><tr><td>Vitest (via <code>pui-cli vitest</code>)</td><td>1.x</td><td><strong>4.x</strong> (uses Vite internally; not the app bundler)</td></tr><tr><td>TypeScript lint</td><td><code>@typescript-eslint</code> v5</td><td><code>typescript-eslint</code> v8</td></tr><tr><td>Exported tsconfig</td><td><code>moduleResolution: "node"</code></td><td><strong><code>moduleResolution: "bundler"</code></strong></td></tr><tr><td>Shared config import</td><td><code>require('@elliemae/pui-cli').eslintConfig</code></td><td><code>import { eslintFlatConfig } from '@elliemae/pui-cli/eslint'</code></td></tr><tr><td>Stylelint import</td><td><code>require('@elliemae/pui-cli').stylelintConfig</code></td><td><code>import { stylelintConfig } from '@elliemae/pui-cli/stylelint'</code> (or keep CJS re-export)</td></tr><tr><td>semantic-release</td><td>21.x + <code>release.config.cjs</code></td><td><strong>25.x</strong> + <code>release.config.mjs</code> (ESM <code>extends</code> for shareable config)</td></tr><tr><td>Husky</td><td>8.x</td><td><strong>9.x</strong></td></tr><tr><td>Lerna (monorepos)</td><td>6.x</td><td><strong>9.x</strong> (via pui-cli; <code>bootstrap</code>/<code>add</code>/<code>link</code> removed)</td></tr><tr><td>Nx (monorepos)</td><td>15.x (<code>@nrwl/*</code>)</td><td><strong>22.x</strong> (<code>nx</code> + <code>@nx/workspace</code>; modern <code>nx.json</code>)</td></tr><tr><td>Cursor skill</td><td>—</td><td><code>pui-cli skills install migrate-to-pui-cli-9 --target all</code></td></tr></tbody></table>
|
|
20
20
|
<hr>
|
|
21
21
|
<h2 class="anchor anchorTargetStickyNavbar_jFbF" id="recommended-rollout">Recommended rollout<a href="#recommended-rollout" class="hash-link" aria-label="Direct link to Recommended rollout" title="Direct link to Recommended rollout" translate="no"></a></h2>
|
|
22
22
|
<p>Ship in <strong>small PRs</strong> to reduce regression risk:</p>
|
|
@@ -28,6 +28,7 @@ For ESLint rule-level detail, see <a class="" href="/cli/eslint-rules-migration"
|
|
|
28
28
|
<li class=""><strong>Husky 9</strong> — update <code>prepare</code> script and hook files (if <code>.husky/</code> exists)</li>
|
|
29
29
|
<li class=""><strong>Vitest 4</strong> — only if the repo uses <code>pui-cli vitest</code> (see below)</li>
|
|
30
30
|
<li class=""><strong>semantic-release 25</strong> — migrate <code>release.config.cjs</code> → <code>release.config.mjs</code> (libraries that publish to npm)</li>
|
|
31
|
+
<li class=""><strong>Lerna 9 + Nx 22</strong> — monorepos only: update <code>nx.json</code>, remove <code>@nrwl/*</code> pins, verify <code>pui-cli version</code> / <code>nx run-many</code></li>
|
|
31
32
|
<li class=""><strong>Debt (optional)</strong> — remove temporary rule overrides, adopt strict config</li>
|
|
32
33
|
</ol>
|
|
33
34
|
<p>Each PR should pass: <code>lint</code>, <code>tscheck</code>, <code>test</code>, <code>build</code>.</p>
|
|
@@ -127,6 +128,33 @@ For ESLint rule-level detail, see <a class="" href="/cli/eslint-rules-migration"
|
|
|
127
128
|
<div class="language-bash codeBlockContainer_uLrG theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_yDoo"><pre tabindex="0" class="prism-code language-bash codeBlock_whMN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_r5mI"><div class="token-line" style="color:#393A34"><span class="token plain">pnpm exec pui-cli skills install migrate-to-pui-cli-9 --target all</span><br></div></code></pre></div></div>
|
|
128
129
|
<p>Then ask the agent to migrate configuration files for pui-cli 9.</p>
|
|
129
130
|
<hr>
|
|
131
|
+
<h2 class="anchor anchorTargetStickyNavbar_jFbF" id="lerna-9-and-nx-22-monorepos-only">Lerna 9 and Nx 22 (monorepos only)<a href="#lerna-9-and-nx-22-monorepos-only" class="hash-link" aria-label="Direct link to Lerna 9 and Nx 22 (monorepos only)" title="Direct link to Lerna 9 and Nx 22 (monorepos only)" translate="no"></a></h2>
|
|
132
|
+
<p>Skip this section for single-package apps and libraries. PUI monorepos (for example <code>pui-microfe</code>, <code>pui-websocket</code>, <code>pui-mono-repo-boilerplate</code>) use <strong>Nx</strong> for task orchestration and <strong>Lerna</strong> (via <code>pui-cli version</code>) for independent package versioning.</p>
|
|
133
|
+
<p>pui-cli 9 ships <strong>lerna 9</strong> and <strong>nx 22</strong> (<code>nx</code> + <code>@nx/workspace</code>). After bumping <code>@elliemae/pui-cli@9</code>, reinstall so the workspace picks up the new CLIs:</p>
|
|
134
|
+
<div class="language-bash codeBlockContainer_uLrG theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_yDoo"><pre tabindex="0" class="prism-code language-bash codeBlock_whMN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_r5mI"><div class="token-line" style="color:#393A34"><span class="token plain">pnpm install</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">pnpm exec nx --version # expect 22.x</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">pnpm exec lerna --version # expect 9.x</span><br></div></code></pre></div></div>
|
|
135
|
+
<h3 class="anchor anchorTargetStickyNavbar_jFbF" id="1-remove-legacy-nx-package-pins">1. Remove legacy Nx package pins<a href="#1-remove-legacy-nx-package-pins" class="hash-link" aria-label="Direct link to 1. Remove legacy Nx package pins" title="Direct link to 1. Remove legacy Nx package pins" translate="no"></a></h3>
|
|
136
|
+
<p>Most monorepos inherit Nx and Lerna from pui-cli and do <strong>not</strong> pin them locally. If your root <code>package.json</code> still lists <code>@nrwl/cli</code>, <code>@nrwl/tao</code>, or <code>@nrwl/workspace</code>, remove those entries and any direct <code>lerna</code> / <code>nx</code> pins — pui-cli 9 provides them.</p>
|
|
137
|
+
<div class="language-bash codeBlockContainer_uLrG theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_yDoo"><pre tabindex="0" class="prism-code language-bash codeBlock_whMN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_r5mI"><div class="token-line" style="color:#393A34"><span class="token plain">pnpm remove @nrwl/cli @nrwl/tao @nrwl/workspace lerna nx # only if explicitly pinned</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">pnpm install</span><br></div></code></pre></div></div>
|
|
138
|
+
<h3 class="anchor anchorTargetStickyNavbar_jFbF" id="2-migrate-nxjson">2. Migrate <code>nx.json</code><a href="#2-migrate-nxjson" class="hash-link" aria-label="Direct link to 2-migrate-nxjson" title="Direct link to 2-migrate-nxjson" translate="no"></a></h3>
|
|
139
|
+
<p>Nx 15 configs use deprecated <code>@nrwl/workspace</code> presets, <code>tasksRunnerOptions</code>, and <code>targetDependencies</code>. Nx 22 uses <code>nx/presets/npm.json</code> (or <code>@nx/workspace/presets/npm.json</code>) and <code>targetDefaults.dependsOn</code>.</p>
|
|
140
|
+
<p><strong>Before (pui-cli 8 / Nx 15):</strong></p>
|
|
141
|
+
<div class="language-json codeBlockContainer_uLrG theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_yDoo"><pre tabindex="0" class="prism-code language-json codeBlock_whMN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_r5mI"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"extends"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"@nrwl/workspace/presets/npm.json"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"tasksRunnerOptions"</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></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"default"</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></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"runner"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"@nrwl/workspace/tasks-runners/default"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"options"</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></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"cacheableOperations"</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">"build"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"test"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"lint"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></div><div 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></div><div 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></div><div 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 plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"targetDependencies"</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></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"build"</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 plain"> </span><span class="token property" style="color:#36acaa">"target"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"build"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"projects"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"dependencies"</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></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"test"</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 plain"> </span><span class="token property" style="color:#36acaa">"target"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"build"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token property" style="color:#36acaa">"projects"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"dependencies"</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 plain"></span><br></div><div 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></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
|
|
142
|
+
<p><strong>After (pui-cli 9 / Nx 22):</strong></p>
|
|
143
|
+
<div class="language-json codeBlockContainer_uLrG theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_yDoo"><pre tabindex="0" class="prism-code language-json codeBlock_whMN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_r5mI"><div class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"$schema"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"./node_modules/nx/schemas/nx-schema.json"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"extends"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"nx/presets/npm.json"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"targetDefaults"</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></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"build"</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></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"dependsOn"</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">"^build"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"cache"</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 plain"></span><br></div><div 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 plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"test"</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></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"dependsOn"</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">"^build"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"cache"</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 plain"></span><br></div><div 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 plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"dts"</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></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"dependsOn"</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">"^dts"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"cache"</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 plain"></span><br></div><div 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 plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"lint"</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></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"dependsOn"</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">"^dts"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"cache"</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 plain"></span><br></div><div 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 plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"dev"</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></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"dependsOn"</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">"^dev"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"cache"</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 plain"></span><br></div><div 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 plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"storybook:start"</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></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"dependsOn"</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">"^build"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"cache"</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 plain"></span><br></div><div 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 plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"storybook:build"</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></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"dependsOn"</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">"^build"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"cache"</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 plain"></span><br></div><div 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 plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"prepare"</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></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"dependsOn"</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">"^prepare"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"cache"</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 plain"></span><br></div><div 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 plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"package"</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></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"dependsOn"</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">"^package"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"cache"</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 plain"></span><br></div><div 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 plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"postinstall"</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></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"cache"</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 plain"></span><br></div><div 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 plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"compile:scss"</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></div><div class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token property" style="color:#36acaa">"cache"</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 plain"></span><br></div><div 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></div><div 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></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
|
|
144
|
+
<p>Map each legacy <code>targetDependencies</code> entry to <code>"dependsOn": ["^<target>"]</code> on the same target name. Targets that were only listed under <code>cacheableOperations</code> get <code>"cache": true</code> in <code>targetDefaults</code>.</p>
|
|
145
|
+
<p><strong>Automated migration (optional):</strong> from the monorepo root after installing pui-cli 9:</p>
|
|
146
|
+
<div class="language-bash codeBlockContainer_uLrG theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_yDoo"><pre tabindex="0" class="prism-code language-bash codeBlock_whMN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_r5mI"><div class="token-line" style="color:#393A34"><span class="token plain">pnpm exec nx migrate latest</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">pnpm exec nx migrate --run-migrations</span><br></div></code></pre></div></div>
|
|
147
|
+
<p>Review the generated migrations; they may simplify <code>nx.json</code> further. Commit the result with your pui-cli 9 bump.</p>
|
|
148
|
+
<h3 class="anchor anchorTargetStickyNavbar_jFbF" id="3-lerna-9-notes">3. Lerna 9 notes<a href="#3-lerna-9-notes" class="hash-link" aria-label="Direct link to 3. Lerna 9 notes" title="Direct link to 3. Lerna 9 notes" translate="no"></a></h3>
|
|
149
|
+
<ul>
|
|
150
|
+
<li class=""><strong>Removed commands:</strong> <code>lerna bootstrap</code>, <code>lerna add</code>, and <code>lerna link</code> are gone. Use pnpm workspaces (<code>pnpm add <pkg> --filter <lib></code>) for linking and dependency management.</li>
|
|
151
|
+
<li class=""><strong><code>lerna.json</code>:</strong> existing PUI repos can keep <code>npmClient: "pnpm"</code> and <code>useWorkspaces: true</code>. No change required unless you relied on removed commands.</li>
|
|
152
|
+
<li class=""><strong><code>pui-cli version</code>:</strong> unchanged — still wraps <code>lerna version --conventional-commits --exact --create-release github --force-publish --yes</code>.</li>
|
|
153
|
+
<li class=""><strong>Dry-run override:</strong> <code>semantic-version:dryrun:override</code> scripts that call <code>lerna version</code> directly continue to work with lerna 9.</li>
|
|
154
|
+
</ul>
|
|
155
|
+
<h3 class="anchor anchorTargetStickyNavbar_jFbF" id="4-verify-monorepo-workflows">4. Verify monorepo workflows<a href="#4-verify-monorepo-workflows" class="hash-link" aria-label="Direct link to 4. Verify monorepo workflows" title="Direct link to 4. Verify monorepo workflows" translate="no"></a></h3>
|
|
156
|
+
<div class="language-bash codeBlockContainer_uLrG theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_yDoo"><pre tabindex="0" class="prism-code language-bash codeBlock_whMN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_r5mI"><div class="token-line" style="color:#393A34"><span class="token plain">pnpm exec nx run-many --target=build --all --parallel</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">pnpm exec nx affected --target=test --uncommitted</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">pnpm exec pui-cli lint</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">pnpm exec pui-cli version --help # confirms pui-cli can invoke lerna 9</span><br></div></code></pre></div></div>
|
|
157
|
+
<hr>
|
|
130
158
|
<h2 class="anchor anchorTargetStickyNavbar_jFbF" id="ci-checklist">CI checklist<a href="#ci-checklist" class="hash-link" aria-label="Direct link to CI checklist" title="Direct link to CI checklist" translate="no"></a></h2>
|
|
131
159
|
<ul class="contains-task-list containsTaskList_nAax">
|
|
132
160
|
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Node 24 in pipeline</li>
|
|
@@ -137,6 +165,8 @@ For ESLint rule-level detail, see <a class="" href="/cli/eslint-rules-migration"
|
|
|
137
165
|
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->Production build</li>
|
|
138
166
|
<li class="task-list-item"><input type="checkbox" disabled=""> <!-- -->lint-staged / husky hooks pass locally</li>
|
|
139
167
|
<li class="task-list-item"><input type="checkbox" disabled=""> <code>semantic-release --dry-run</code> (libraries that publish to npm)</li>
|
|
168
|
+
<li class="task-list-item"><input type="checkbox" disabled=""> <code>nx run-many --target=build --all</code> (monorepos)</li>
|
|
169
|
+
<li class="task-list-item"><input type="checkbox" disabled=""> <code>pui-cli version --help</code> or dry-run versioning (monorepos that publish packages)</li>
|
|
140
170
|
</ul>
|
|
141
171
|
<hr>
|
|
142
172
|
<h2 class="anchor anchorTargetStickyNavbar_jFbF" id="getting-help">Getting help<a href="#getting-help" class="hash-link" aria-label="Direct link to Getting help" title="Direct link to Getting help" translate="no"></a></h2>
|
|
@@ -145,6 +175,6 @@ For ESLint rule-level detail, see <a class="" href="/cli/eslint-rules-migration"
|
|
|
145
175
|
<li class=""><strong>Stylelint changes:</strong> <a class="" href="/cli/stylelint-migration">stylelint-migration.md</a></li>
|
|
146
176
|
<li class=""><strong>Commands:</strong> <a class="" href="/cli/usage-guide">usage guide</a></li>
|
|
147
177
|
<li class=""><strong>Platform team:</strong> <code>#pui-platform</code> or your team's platform-ui channel</li>
|
|
148
|
-
</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_sn50"><a href="https://git.elliemae.io/platform-ui/pui-cli.git/docs/pui-cli-9-migration.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_sbI6" 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_n07i"></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/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">PUI CLI Documentation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/cli/ssl-certificate-setup"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Trust SSL Certificate Guide</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_gGRX thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#at-a-glance" class="table-of-contents__link toc-highlight">At a glance</a></li><li><a href="#recommended-rollout" class="table-of-contents__link toc-highlight">Recommended rollout</a></li><li><a href="#step-by-step" class="table-of-contents__link toc-highlight">Step-by-step</a><ul><li><a href="#1-upgrade-toolchain" class="table-of-contents__link toc-highlight">1. Upgrade toolchain</a></li><li><a href="#2-upgrade-pui-cli" class="table-of-contents__link toc-highlight">2. Upgrade pui-cli</a></li><li><a href="#3-add-flat-eslint-config" class="table-of-contents__link toc-highlight">3. Add flat ESLint config</a></li><li><a href="#4-update-stylelint-config" class="table-of-contents__link toc-highlight">4. Update Stylelint config</a></li><li><a href="#5-fix-lint" class="table-of-contents__link toc-highlight">5. Fix lint</a></li><li><a href="#6-install-the-migration-skill-optional" class="table-of-contents__link toc-highlight">6. Install the migration skill (optional)</a></li></ul></li><li><a href="#temporary-overrides" class="table-of-contents__link toc-highlight">Temporary overrides</a></li><li><a href="#strict-config-after-cleanup" class="table-of-contents__link toc-highlight">Strict config (after cleanup)</a></li><li><a href="#husky-9" class="table-of-contents__link toc-highlight">Husky 9</a></li><li><a href="#vitest-4" class="table-of-contents__link toc-highlight">Vitest 4</a></li><li><a href="#semantic-release-25" class="table-of-contents__link toc-highlight">semantic-release 25</a><ul><li><a href="#1-upgrade-semantic-release-if-pinned-locally" class="table-of-contents__link toc-highlight">1. Upgrade semantic-release (if pinned locally)</a></li><li><a href="#2-migrate-release-config-to-esm" class="table-of-contents__link toc-highlight">2. Migrate release config to ESM</a></li><li><a href="#3-custom-plugins-or-overrides" class="table-of-contents__link toc-highlight">3. Custom plugins or overrides</a></li><li><a href="#4-verify-locally" class="table-of-contents__link toc-highlight">4. Verify locally</a></li><li><a href="#agent-assisted-migration" class="table-of-contents__link toc-highlight">Agent-assisted migration</a></li></ul></li><li><a href="#ci-checklist" class="table-of-contents__link toc-highlight">CI checklist</a></li><li><a href="#getting-help" class="table-of-contents__link toc-highlight">Getting 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__EWc"><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__EWc"><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>
|
|
178
|
+
</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_sn50"><a href="https://git.elliemae.io/platform-ui/pui-cli.git/docs/pui-cli-9-migration.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_sbI6" 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_n07i"></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/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">PUI CLI Documentation</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/cli/ssl-certificate-setup"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Trust SSL Certificate Guide</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_gGRX thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#at-a-glance" class="table-of-contents__link toc-highlight">At a glance</a></li><li><a href="#recommended-rollout" class="table-of-contents__link toc-highlight">Recommended rollout</a></li><li><a href="#step-by-step" class="table-of-contents__link toc-highlight">Step-by-step</a><ul><li><a href="#1-upgrade-toolchain" class="table-of-contents__link toc-highlight">1. Upgrade toolchain</a></li><li><a href="#2-upgrade-pui-cli" class="table-of-contents__link toc-highlight">2. Upgrade pui-cli</a></li><li><a href="#3-add-flat-eslint-config" class="table-of-contents__link toc-highlight">3. Add flat ESLint config</a></li><li><a href="#4-update-stylelint-config" class="table-of-contents__link toc-highlight">4. Update Stylelint config</a></li><li><a href="#5-fix-lint" class="table-of-contents__link toc-highlight">5. Fix lint</a></li><li><a href="#6-install-the-migration-skill-optional" class="table-of-contents__link toc-highlight">6. Install the migration skill (optional)</a></li></ul></li><li><a href="#temporary-overrides" class="table-of-contents__link toc-highlight">Temporary overrides</a></li><li><a href="#strict-config-after-cleanup" class="table-of-contents__link toc-highlight">Strict config (after cleanup)</a></li><li><a href="#husky-9" class="table-of-contents__link toc-highlight">Husky 9</a></li><li><a href="#vitest-4" class="table-of-contents__link toc-highlight">Vitest 4</a></li><li><a href="#semantic-release-25" class="table-of-contents__link toc-highlight">semantic-release 25</a><ul><li><a href="#1-upgrade-semantic-release-if-pinned-locally" class="table-of-contents__link toc-highlight">1. Upgrade semantic-release (if pinned locally)</a></li><li><a href="#2-migrate-release-config-to-esm" class="table-of-contents__link toc-highlight">2. Migrate release config to ESM</a></li><li><a href="#3-custom-plugins-or-overrides" class="table-of-contents__link toc-highlight">3. Custom plugins or overrides</a></li><li><a href="#4-verify-locally" class="table-of-contents__link toc-highlight">4. Verify locally</a></li><li><a href="#agent-assisted-migration" class="table-of-contents__link toc-highlight">Agent-assisted migration</a></li></ul></li><li><a href="#lerna-9-and-nx-22-monorepos-only" class="table-of-contents__link toc-highlight">Lerna 9 and Nx 22 (monorepos only)</a><ul><li><a href="#1-remove-legacy-nx-package-pins" class="table-of-contents__link toc-highlight">1. Remove legacy Nx package pins</a></li><li><a href="#2-migrate-nxjson" class="table-of-contents__link toc-highlight">2. Migrate <code>nx.json</code></a></li><li><a href="#3-lerna-9-notes" class="table-of-contents__link toc-highlight">3. Lerna 9 notes</a></li><li><a href="#4-verify-monorepo-workflows" class="table-of-contents__link toc-highlight">4. Verify monorepo workflows</a></li></ul></li><li><a href="#ci-checklist" class="table-of-contents__link toc-highlight">CI checklist</a></li><li><a href="#getting-help" class="table-of-contents__link toc-highlight">Getting 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__EWc"><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__EWc"><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>
|
|
149
179
|
</body>
|
|
150
180
|
</html>
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="generator" content="Docusaurus v3.10.1">
|
|
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.74603f39.css">
|
|
7
|
-
<script src="/cli/assets/js/runtime~main.
|
|
8
|
-
<script src="/cli/assets/js/main.
|
|
7
|
+
<script src="/cli/assets/js/runtime~main.f7c5bef0.js" defer="defer"></script>
|
|
8
|
+
<script src="/cli/assets/js/main.7f815b7e.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
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.10.1">
|
|
6
6
|
<title data-rh="true">Stylelint migration guide (pui-cli 8 → 9 / Stylelint 17) | 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/stylelint-migration"><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="Stylelint migration guide (pui-cli 8 → 9 / Stylelint 17) | Cli"><meta data-rh="true" name="description" content="This document covers Stylelint changes shipped with pui-cli 9 (Stylelint 17.x)."><meta data-rh="true" property="og:description" content="This document covers Stylelint changes shipped with pui-cli 9 (Stylelint 17.x)."><link data-rh="true" rel="icon" href="/cli/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/cli/stylelint-migration"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/stylelint-migration" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/stylelint-migration" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Stylelint migration guide (pui-cli 8 → 9 / Stylelint 17)","item":"https://pui.ice.com/cli/stylelint-migration"}]}</script><link rel="stylesheet" href="/cli/assets/css/styles.74603f39.css">
|
|
7
|
-
<script src="/cli/assets/js/runtime~main.
|
|
8
|
-
<script src="/cli/assets/js/main.
|
|
7
|
+
<script src="/cli/assets/js/runtime~main.f7c5bef0.js" defer="defer"></script>
|
|
8
|
+
<script src="/cli/assets/js/main.7f815b7e.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
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.10.1">
|
|
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.74603f39.css">
|
|
7
|
-
<script src="/cli/assets/js/runtime~main.
|
|
8
|
-
<script src="/cli/assets/js/main.
|
|
7
|
+
<script src="/cli/assets/js/runtime~main.f7c5bef0.js" defer="defer"></script>
|
|
8
|
+
<script src="/cli/assets/js/main.7f815b7e.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
11
|
<svg style="display: none;"><defs>
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
name: migrate-to-pui-cli-9
|
|
3
3
|
description: >-
|
|
4
4
|
Migrate a PUI app or library to pui-cli 9 (Node 24, pnpm 11, ESLint 10 flat config, Stylelint 17,
|
|
5
|
-
Husky 9, Vitest 4, semantic-release 25). Use when upgrading @elliemae/pui-cli,
|
|
6
|
-
.eslintrc.cjs to eslint.config.mjs, release.config.cjs to release.config.mjs,
|
|
7
|
-
hooks, fixing Vitest 4 / coverage-v8 breakages,
|
|
8
|
-
App/library production builds
|
|
5
|
+
Husky 9, Vitest 4, semantic-release 25, Lerna 9, Nx 22). Use when upgrading @elliemae/pui-cli,
|
|
6
|
+
migrating from .eslintrc.cjs to eslint.config.mjs, release.config.cjs to release.config.mjs,
|
|
7
|
+
upgrading Husky 8 hooks, fixing Vitest 4 / coverage-v8 breakages, migrating monorepo nx.json from
|
|
8
|
+
@nrwl/workspace to nx 22, or adopting shared configs from pui-cli. App/library production builds
|
|
9
|
+
stay on Webpack.
|
|
9
10
|
---
|
|
10
11
|
|
|
11
12
|
# Migrate to pui-cli 9
|
|
@@ -221,13 +222,47 @@ export default {
|
|
|
221
222
|
|
|
222
223
|
5. Dry-run: `pnpm exec semantic-release --dry-run`
|
|
223
224
|
|
|
224
|
-
### Phase 9 —
|
|
225
|
+
### Phase 9 — Lerna 9 and Nx 22 (monorepos only)
|
|
226
|
+
|
|
227
|
+
Skip for single-package apps/libs. Applies to repos with `lerna.json`, `nx.json`, and `libs/*` workspaces.
|
|
228
|
+
|
|
229
|
+
1. After `@elliemae/pui-cli@9` is installed, confirm CLIs:
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
pnpm install
|
|
233
|
+
pnpm exec nx --version # 22.x
|
|
234
|
+
pnpm exec lerna --version # 9.x
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
2. Remove legacy pins if present (`@nrwl/cli`, `@nrwl/tao`, `@nrwl/workspace`, direct `lerna`/`nx`).
|
|
238
|
+
|
|
239
|
+
3. Migrate `nx.json`:
|
|
240
|
+
- `extends`: `@nrwl/workspace/presets/npm.json` → `nx/presets/npm.json`
|
|
241
|
+
- Add `$schema`: `./node_modules/nx/schemas/nx-schema.json`
|
|
242
|
+
- Replace `targetDependencies` with `targetDefaults.<target>.dependsOn` (use `^target` for dependency projects)
|
|
243
|
+
- Remove `tasksRunnerOptions`; move cacheable targets to `"cache": true` in `targetDefaults`
|
|
244
|
+
- Optional: `pnpm exec nx migrate latest && pnpm exec nx migrate --run-migrations`
|
|
245
|
+
|
|
246
|
+
4. Lerna 9: stop using `lerna bootstrap` / `lerna add` / `lerna link` — use pnpm workspaces. Keep existing `lerna.json` unless it referenced removed commands. `pui-cli version` unchanged.
|
|
247
|
+
|
|
248
|
+
5. Smoke-test:
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
pnpm exec nx run-many --target=build --all --parallel
|
|
252
|
+
pnpm exec nx affected --target=lint --uncommitted
|
|
253
|
+
pnpm exec pui-cli lint
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
See [pui-cli 9 migration guide](https://docs.pui.mortgagetech.q1.ice.com/cli/pui-cli-9-migration) — **Lerna 9 and Nx 22** section for the full `nx.json` template.
|
|
257
|
+
|
|
258
|
+
### Phase 10 — Verify
|
|
225
259
|
|
|
226
260
|
- [ ] `pnpm exec pui-cli lint` — 0 errors
|
|
227
261
|
- [ ] `pnpm exec pui-cli tscheck --files`
|
|
228
262
|
- [ ] `pnpm test` (or `pui-cli vitest` if applicable)
|
|
229
263
|
- [ ] `pnpm run build` (or `pui-cli build`) — Webpack, unchanged
|
|
230
264
|
- [ ] Pre-commit / lint-staged passes (after Husky 9 migration if applicable)
|
|
265
|
+
- [ ] Monorepos: `nx run-many --target=build --all` and `pui-cli version --help`
|
|
231
266
|
- [ ] CI green on the target branch
|
|
232
267
|
|
|
233
268
|
## Common lint fixes after upgrade
|
|
@@ -244,6 +279,9 @@ export default {
|
|
|
244
279
|
| Vitest `optimizer.web` unknown | Rename to `test.deps.optimizer.client` (Vitest 4) |
|
|
245
280
|
| Coverage fails after upgrade | Remove `@vitest/coverage-c8`; use `@vitest/coverage-v8@4` |
|
|
246
281
|
| `release.config.cjs` extends fails | Migrate to `release.config.mjs`; requires semantic-release 22+ (pui-cli 9 ships 25) |
|
|
282
|
+
| `nx` fails after pui-cli 9 bump | Migrate `nx.json` off `@nrwl/*`; use `targetDefaults` not `targetDependencies` |
|
|
283
|
+
| `lerna bootstrap` / `add` / `link` | Removed in lerna 9 — use `pnpm` workspaces and `pnpm add --filter` |
|
|
284
|
+
| Stale `@nrwl/workspace` in lockfile | Remove direct `@nrwl/*` pins; rely on pui-cli's `nx` + `@nx/workspace` |
|
|
247
285
|
|
|
248
286
|
Full rule comparison: [eslint-rules-migration.md](https://docs.pui.mortgagetech.q1.ice.com/cli/eslint-rules-migration) (also at `docs/eslint-rules-migration.md` in pui-cli).
|
|
249
287
|
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
name: migrate-to-pui-cli-9
|
|
3
3
|
description: >-
|
|
4
4
|
Migrate a PUI app or library to pui-cli 9 (Node 24, pnpm 11, ESLint 10 flat config, Stylelint 17,
|
|
5
|
-
Husky 9, Vitest 4, semantic-release 25). Use when upgrading @elliemae/pui-cli,
|
|
6
|
-
.eslintrc.cjs to eslint.config.mjs, release.config.cjs to release.config.mjs,
|
|
7
|
-
hooks, fixing Vitest 4 / coverage-v8 breakages,
|
|
8
|
-
App/library production builds
|
|
5
|
+
Husky 9, Vitest 4, semantic-release 25, Lerna 9, Nx 22). Use when upgrading @elliemae/pui-cli,
|
|
6
|
+
migrating from .eslintrc.cjs to eslint.config.mjs, release.config.cjs to release.config.mjs,
|
|
7
|
+
upgrading Husky 8 hooks, fixing Vitest 4 / coverage-v8 breakages, migrating monorepo nx.json from
|
|
8
|
+
@nrwl/workspace to nx 22, or adopting shared configs from pui-cli. App/library production builds
|
|
9
|
+
stay on Webpack.
|
|
9
10
|
---
|
|
10
11
|
|
|
11
12
|
# Migrate to pui-cli 9
|
|
@@ -221,13 +222,47 @@ export default {
|
|
|
221
222
|
|
|
222
223
|
5. Dry-run: `pnpm exec semantic-release --dry-run`
|
|
223
224
|
|
|
224
|
-
### Phase 9 —
|
|
225
|
+
### Phase 9 — Lerna 9 and Nx 22 (monorepos only)
|
|
226
|
+
|
|
227
|
+
Skip for single-package apps/libs. Applies to repos with `lerna.json`, `nx.json`, and `libs/*` workspaces.
|
|
228
|
+
|
|
229
|
+
1. After `@elliemae/pui-cli@9` is installed, confirm CLIs:
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
pnpm install
|
|
233
|
+
pnpm exec nx --version # 22.x
|
|
234
|
+
pnpm exec lerna --version # 9.x
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
2. Remove legacy pins if present (`@nrwl/cli`, `@nrwl/tao`, `@nrwl/workspace`, direct `lerna`/`nx`).
|
|
238
|
+
|
|
239
|
+
3. Migrate `nx.json`:
|
|
240
|
+
- `extends`: `@nrwl/workspace/presets/npm.json` → `nx/presets/npm.json`
|
|
241
|
+
- Add `$schema`: `./node_modules/nx/schemas/nx-schema.json`
|
|
242
|
+
- Replace `targetDependencies` with `targetDefaults.<target>.dependsOn` (use `^target` for dependency projects)
|
|
243
|
+
- Remove `tasksRunnerOptions`; move cacheable targets to `"cache": true` in `targetDefaults`
|
|
244
|
+
- Optional: `pnpm exec nx migrate latest && pnpm exec nx migrate --run-migrations`
|
|
245
|
+
|
|
246
|
+
4. Lerna 9: stop using `lerna bootstrap` / `lerna add` / `lerna link` — use pnpm workspaces. Keep existing `lerna.json` unless it referenced removed commands. `pui-cli version` unchanged.
|
|
247
|
+
|
|
248
|
+
5. Smoke-test:
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
pnpm exec nx run-many --target=build --all --parallel
|
|
252
|
+
pnpm exec nx affected --target=lint --uncommitted
|
|
253
|
+
pnpm exec pui-cli lint
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
See [pui-cli 9 migration guide](https://docs.pui.mortgagetech.q1.ice.com/cli/pui-cli-9-migration) — **Lerna 9 and Nx 22** section for the full `nx.json` template.
|
|
257
|
+
|
|
258
|
+
### Phase 10 — Verify
|
|
225
259
|
|
|
226
260
|
- [ ] `pnpm exec pui-cli lint` — 0 errors
|
|
227
261
|
- [ ] `pnpm exec pui-cli tscheck --files`
|
|
228
262
|
- [ ] `pnpm test` (or `pui-cli vitest` if applicable)
|
|
229
263
|
- [ ] `pnpm run build` (or `pui-cli build`) — Webpack, unchanged
|
|
230
264
|
- [ ] Pre-commit / lint-staged passes (after Husky 9 migration if applicable)
|
|
265
|
+
- [ ] Monorepos: `nx run-many --target=build --all` and `pui-cli version --help`
|
|
231
266
|
- [ ] CI green on the target branch
|
|
232
267
|
|
|
233
268
|
## Common lint fixes after upgrade
|
|
@@ -244,6 +279,9 @@ export default {
|
|
|
244
279
|
| Vitest `optimizer.web` unknown | Rename to `test.deps.optimizer.client` (Vitest 4) |
|
|
245
280
|
| Coverage fails after upgrade | Remove `@vitest/coverage-c8`; use `@vitest/coverage-v8@4` |
|
|
246
281
|
| `release.config.cjs` extends fails | Migrate to `release.config.mjs`; requires semantic-release 22+ (pui-cli 9 ships 25) |
|
|
282
|
+
| `nx` fails after pui-cli 9 bump | Migrate `nx.json` off `@nrwl/*`; use `targetDefaults` not `targetDependencies` |
|
|
283
|
+
| `lerna bootstrap` / `add` / `link` | Removed in lerna 9 — use `pnpm` workspaces and `pnpm add --filter` |
|
|
284
|
+
| Stale `@nrwl/workspace` in lockfile | Remove direct `@nrwl/*` pins; rely on pui-cli's `nx` + `@nx/workspace` |
|
|
247
285
|
|
|
248
286
|
Full rule comparison: [eslint-rules-migration.md](https://docs.pui.mortgagetech.q1.ice.com/cli/eslint-rules-migration) (also at `docs/eslint-rules-migration.md` in pui-cli).
|
|
249
287
|
|