SOLVED

PnP PowerShell - Adding SPFx web part to a 'classic' page

Copper Contributor

Using PnP PowerShell, I'm able to add a .dwp or .webpart file to my page using Add-PnPWebPartToWebPartPage.

I can also add an SPFx client side web part to a 'modern' page using Add-PnPClientSideWebPart.

 

Is there a way then using PnP to add an SPFx client side web part to a 'classic' page?

 

I found a hacky way by manually adding the client side web part to the 'classic' page, exporting it to get the .webpart file and using Add-PnPWebPartToWebPartPage to add that file programmatically.

3 Replies

Hi @Mark Andrada,

 

This can absolutely be done :)

You will need the Add-PnPWebPartToWebPartPage command as this is the one for classic pages 

Check example 2: you will need to create a variable that contains your web part XML and then pass that variable to the command.

 

Joel

 

I guess I'm a bit confused still. I have the client web part app added and installed on my site collection app catalog. How would I get the XML from here?
best response confirmed by Mark Andrada (Copper Contributor)
Solution

Hi @Mark Andrada,

 

No problem, other commands will help here.

 

Start by adding the web part to a page.

Next, execute Get-PnPWebPart to get all the web parts on the page and identify the Id for the one you need to export as XML

Finally, use Get-PnPWebPartXml to get the XML for the web part (passing the correct Id)

 

Let me know if you find any problems, but it should be very easy to complete.

 

1 best response

Accepted Solutions
best response confirmed by Mark Andrada (Copper Contributor)
Solution

Hi @Mark Andrada,

 

No problem, other commands will help here.

 

Start by adding the web part to a page.

Next, execute Get-PnPWebPart to get all the web parts on the page and identify the Id for the one you need to export as XML

Finally, use Get-PnPWebPartXml to get the XML for the web part (passing the correct Id)

 

Let me know if you find any problems, but it should be very easy to complete.

 

View solution in original post