Blog, Development

Let’s build Html WebResources faster and smarter, vol. 2

In the previous post, I provided step-by-instructions on how to start developing HtmlWebResources using create-react-app. In this, I will share one more tip I got from Chris Groh that can speed up the development/testing process even greater.

If you built React apps using create-react-app or PCF control and tested it using “npm start watch” you may know the term “hot reload”. If you’re not aware of this term it means – an automatical reflection of changes performed in code in the running instance of the application. Here is what “hot reload” looks like when it works within create-react-app and VSCode:

Scenario

I continue working on the application I built in my previous post. The application was deployed to Dataverse with the relative path “ab_/ABCustomDialog/index.html”:

During the development, I, as a developer, want to see all changes performed in VS inside Dataverse, and using the following steps it’s doable.

Changes in VS project

Add the file with the name .env.development to the project and add the following content to it:

PUBLIC_URL=/WebResources/ab_/ABCustomDialog
WDS_SOCKET_HOST=localhost
WDS_SOCKET_PORT=3000
WDS_SOCKET_PATH=ws

Update the first line according to the virtual folder used by your application and leave lines 2-4 untouched.

Fiddler

Configure Fiddler’s autoresponder the following way:

Here is the text representation of settings:

regex:(?isx)^https://yourcrminstance.crm.dynamics.com/(?:%7B\d{8,20}%7D)?/?WebResources/ab_/ABCustomDialog/([^?]+)(\?.*)?$

and

http://localhost:3000/WebResources/ab_/ABCustomDialog/$1

Replace “yuorcrminstance.crm.dynamics.com” with your instance base URL and “ab_/ABCustomDialog” with the virtual folder used by your Html WebResource.

Doublecheck that the “Accept all CONNECTs” checkbox is unchecked – this approach won’t work with the checkbox checked.

Testing

Start the fiddler (in some cases it’s required to run it “As Administrator” mode).

Switch to VS Code and run the “npm start” command.

Switch to Dataverse and refresh the application.

Perform the change in VS Code. If everything was configured the right way changes should be immediately reflected in Dataverse:

1 Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.