{"id":255691,"date":"2025-12-29T08:05:07","date_gmt":"2025-12-29T08:05:07","guid":{"rendered":"https:\/\/www.europesays.com\/ie\/255691\/"},"modified":"2025-12-29T08:05:07","modified_gmt":"2025-12-29T08:05:07","slug":"sharepoint-framework-1-22-ships-with-heft-based-build-toolchain-and-refreshed-project-baseline","status":"publish","type":"post","link":"https:\/\/www.europesays.com\/ie\/255691\/","title":{"rendered":"SharePoint Framework 1.22 Ships with Heft-Based Build Toolchain and Refreshed Project Baseline"},"content":{"rendered":"<p>Microsoft has announced the general availability of <a href=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/general-availability-of-sharepoint-framework-1-22-a-major-refresh-of-the-build-tooling-experience\/\" rel=\"nofollow noopener\" target=\"_blank\">SharePoint Framework (SPFx) version\u202f1.22<\/a>, a release centred on modernising the build and tooling experience for SPFx developers. This shift marks a foundational update to how SPFx solutions are built, aimed at addressing technical debt, improving extensibility, and aligning with broader Microsoft toolchain standards.<\/p>\n<p>Prior to this release, SPFx projects leveraged a <a href=\"https:\/\/learn.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/toolchain\/sharepoint-framework-toolchain\" rel=\"nofollow noopener\" target=\"_blank\">Gulp\u2011based build toolchain<\/a><strong> <\/strong>to orchestrate tasks such as compilation, bundling, and packaging. While familiar, this model has long been considered dated relative to modern JavaScript and TypeScript workflows. At the same time, older SPFx templates and generator outputs triggered npm audit vulnerabilities and lagged behind current dependency expectations. Version\u202f1.22 addresses both concerns by transitioning to a new toolchain and cleaning up scaffolded solution vulnerabilities.<\/p>\n<p>At the heart of the SPFx\u202f1.22 update is the transition from a Gulp\u2011based to a <a href=\"https:\/\/learn.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/toolchain\/sharepoint-framework-toolchain-rushstack-heft\" rel=\"nofollow noopener\" target=\"_blank\">Heft\u2011based build toolchain<\/a>. <a href=\"https:\/\/heft.rushstack.io\/\" rel=\"nofollow noopener\" target=\"_blank\">Heft (a config-driven build orchestrator from the Rush Stack ecosystem)<\/a> now manages build tasks for new SPFx projects, while underlying bundling continues to use Webpack. This shift aligns SPFx development with contemporary build ecosystems, enabling better extensibility, clearer configuration surfaces, and alignment with other Microsoft 365 toolchains. Existing projects upgraded to 1.22 can continue using the legacy Gulp workflows if needed, but new projects generated with Yeoman default to Heft.<\/p>\n<p>Heft&#8217;s introduction addresses long-standing developer concerns about the SPFx toolchain being a \u2018black box.\u2019 According to Microsoft, Heft\u2019s opinionated and plugin-capable design allows for more transparent, maintainable builds and facilitates future tooling enhancements. It supports shared configurations (rig.json), streamlined TypeScript settings, and native Webpack configuration options. However, migrating away from custom gulpfile.js implementations will require significant adjustments, particularly for teams using bespoke build steps.<\/p>\n<p>Another important modernisation in this release is the resolution of all known npm audit reported vulnerabilities in both the SPFx Yeoman generator and the scaffolded project outputs. After scaffolding a new project with the latest generator, developers should no longer see high\u2011severity issues reported by npm audit, improving security baseline confidence out of the box. Microsoft also reset the default TypeScript version to 5.8 in scaffolded templates, giving developers access to more recent language features and improved tooling support.<a href=\"https:\/\/learn.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/release-1.22\" rel=\"nofollow noopener\" target=\"_blank\"> <\/a><\/p>\n<p><img decoding=\"async\" alt=\"SharePoint Framework npm install screenshot, showing 0 vulnerabilities\" style=\"width: 777px; height: 430px;\" src=\"https:\/\/www.infoq.com\/news\/2025\/12\/spfx-1-22-heft\/news\/2025\/12\/spfx-1-22-heft\/en\/resources\/1spfx-no-issues-1766849368051.png\" rel=\"share\"\/><\/p>\n<p>The release <a href=\"https:\/\/learn.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/release-1.22\" rel=\"nofollow noopener\" target=\"_blank\">doesn\u2019t introduce any deprecations<\/a> for previously supported APIs. However, Microsoft notes that only critical fixes will be applied to the legacy Gulp system going forward. In SPFx 1.23, new projects will use Heft exclusively (pending CLI readiness), and by SPFx 1.24, the Gulp-based pipeline will become officially unsupported.<\/p>\n<p>Community response across social channels underscores both excitement and caution. On LinkedIn, members of the Microsoft 365 Developer community highlighted the significance of the build system change, noting that this <a href=\"https:\/\/www.linkedin.com\/posts\/juliemturner_sneak-peek-episode-019-sharepoint-framework-activity-7396599407124631555-vxo8\/\" rel=\"nofollow noopener\" target=\"_blank\">&amp;quote;is not one of those simple updates&amp;quote;<\/a> despite the semantic version number, especially because of the gulp\u2011to\u2011Heft shift. Some developers are already <a href=\"https:\/\/donkirkham.com\/blog\/spfx-heft\/\" rel=\"nofollow noopener\" target=\"_blank\">sharing walkthroughs and resources<\/a> to help others adapt to the new Heft workflows.<a href=\"https:\/\/www.linkedin.com\/posts\/juliemturner_sneak-peek-episode-019-sharepoint-framework-activity-7396599407124631555-vxo8?utm_source=chatgpt.com\" rel=\"nofollow noopener\" target=\"_blank\"> <\/a>Others have mentioned that <a href=\"https:\/\/www.linkedin.com\/posts\/andrewconnell_microsoft-365-fullstack-devs-office-hours-activity-7396881289489833984-n5Fj\/\" rel=\"nofollow noopener\" target=\"_blank\">transitioning established projects represents a non\u2011trivial effor<\/a>t, particularly for teams with custom Gulp tasks or extensions, and are <a href=\"https:\/\/www.linkedin.com\/posts\/stfbauer_aidriven-spfx-122-upgrade-a-reproducible-activity-7406639228228517888-Q76C\/\" rel=\"nofollow noopener\" target=\"_blank\">discussing strategies for incremental migration<\/a>.<\/p>\n<p>Looking forward, SPFx\u2019s roadmap includes further CLI decoupling, open-sourcing templates, and deeper integration with Rush Stack tooling. Developers are encouraged to explore Heft now to ease future transitions and align with Microsoft\u2019s direction.<\/p>\n<p>For full release notes and Heft migration guidance, see<a href=\"https:\/\/learn.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/release-1.22\" rel=\"nofollow noopener\" target=\"_blank\"> SPFx 1.22 release notes<\/a> and<a href=\"https:\/\/learn.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/toolchain\/sharepoint-framework-toolchain-rushstack-heft\" rel=\"nofollow noopener\" target=\"_blank\"> toolchain documentation<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"Microsoft has announced the general availability of SharePoint Framework (SPFx) version\u202f1.22, a release centred on modernising the build&hellip;\n","protected":false},"author":2,"featured_media":255692,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[74],"tags":[14238,7266,18,19,17,39137,121261,132498,82],"class_list":{"0":"post-255691","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-technology","8":"tag-net","9":"tag-development","10":"tag-eire","11":"tag-ie","12":"tag-ireland","13":"tag-office-365","14":"tag-sharepoint","15":"tag-spfx-1-22-heft","16":"tag-technology"},"share_on_mastodon":{"url":"https:\/\/pubeurope.com\/@ie\/115801825299361916","error":""},"_links":{"self":[{"href":"https:\/\/www.europesays.com\/ie\/wp-json\/wp\/v2\/posts\/255691","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.europesays.com\/ie\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.europesays.com\/ie\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/ie\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/ie\/wp-json\/wp\/v2\/comments?post=255691"}],"version-history":[{"count":0,"href":"https:\/\/www.europesays.com\/ie\/wp-json\/wp\/v2\/posts\/255691\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/ie\/wp-json\/wp\/v2\/media\/255692"}],"wp:attachment":[{"href":"https:\/\/www.europesays.com\/ie\/wp-json\/wp\/v2\/media?parent=255691"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.europesays.com\/ie\/wp-json\/wp\/v2\/categories?post=255691"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.europesays.com\/ie\/wp-json\/wp\/v2\/tags?post=255691"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}