Heads-up to all PCF component authors:
The latest pcf-scripts 1.8.5 release we published yesterday Wed 07/21 contains a hidden breaking change that now requires PCF control projects to be compiled with TypeScript >= 4.x.
If compiling with TypeScript 3.x and using pcf-scripts 1.8.5, you will experience the following error:
> npm run build
> my-control@1.0.0 build
> pcf-scripts build
[1:21:38 PM] [build] Initializing...
[1:21:38 PM] [build] Validating manifest...
[1:21:38 PM] [build] Validating control...
[1:21:39 PM] [build] Generating manifest types...
[pcf-scripts] [Error] encountered unexpected error:
TypeError: Cannot read property 'createInterfaceDeclaration' of undefined
As a quick remedy, I have unpublished the offending version 1.8.5 for the pcf-scripts and pcf-start package from npmjs.org
For most users using the default floating version reference in their package.json ("pcf-scripts": "^1"), this will automatically fix the issue once your project's folder is refreshed with: npm install
If your builds is using upstream NPM feeds that already have a cached copy of 1.8.5, and your PCF control projects still require TypeScript 3.x and you cannot (or don't want to at this moment) easily update to 4.x, here is a mitigation:
- edit the package.json, and change the floating "^1" version of the the pcf-scripts package to be pinned to the previous release, 1.7.4:
"pcf-scripts": "1.7.4",
- npm install
- npm run build
or:
msbuild my-control.pcfproj
This change will need to be undone, once we have a hotfix 1.8.6 or higher available.
We apologize for the disruption and hassle this escaped and unintended breaking change has caused you
CC: @HemantG @KaushikKaul
Thanks for the prompt heads-up: this hasn't hit our teams yet, but I will spread the word. This is HUGELY appreciated. THANK YOU!
earlier today, we've published a hotfix for the unintentional breaking change as pcf-scripts 1.8.6 (the broken 1.8.5 remains unpublished). The 1.8.6 will now tolerate PCF projects that build with either TypeScript 3.x or 4.x
If your chosen mitigation was to pin pcf-scripts entries in your package.json files to an earlier 1.7.4 version, please feel free to undo that and go back to the floating version:
"pcf-scripts": "^1",
We apologize for the disruption and hassle this escaped and unintended breaking change has caused you; thank you for your collaboration
CC: @HemantG