I want to develop a React application in Visual Studio 2017 alongside my .NET application (in the same solution).
I am using TypeScript, so I want a project type where I can customise the build (I want to webpack the project, etc, so the standard Visual Studio TypeScript build is not enough).
I have installed the node.js developer tools but they only allow me to create node.js specific projects (which run a node.js instance when started) and do not let me customise the build process.
Which project type will be best for this?
Open Visual Studio 2017, hit Ctrl+Shift+N and select the ASP.NET Core Web Application (. NET Core) project type from the templates. When you click Ok, you will get the following prompt. Select ASP.NET Core 2.2 and choose the React template.
React is a popular JavaScript library developed by Facebook for building user interfaces. The Visual Studio Code editor supports React.
Open a terminal on vscode, then make sure you already node installed. Type npm install after that npm run start or whatever command to run, you can see on package. json . Show activity on this post.
I recently did this and would recommend the following:
create-react-app eject
command. Be advised that this is a "one-way" operation as you can't put the files back in to create-react-app
. You will need to install node and yarn separately, if that wasn't obvious.Since you also want to use TypeScript you should use the react-scripts-ts script like so:
create-react-app my-app --scripts-version=react-scripts-ts
Microsoft has a good walk through here.
The tricky part is getting the generated React project into Visual Studio. I did this by installing the "Node.js development" module from the "Visual Studio Installer" that gets installed with Visual Studio. Unfortunately, Microsoft seems to have removed the blank or empty TypeScript project template (see here).
Once the Node.js tools are installed you can create a node based project in your solution. There are several to choose from under the File -> New -> Project... -> Templates -> Other Languages -> TypeScript left menu navigation. I chose "Blank Node.js Web Application".
After that you will need to copy over the React project files created by create-react-app
into your Visual Studio project. I find it easier to create the directories in Visual Studio so they are added to the project file, then copy the files the generated folders, and finally add them to the project folder in Visual Studio.
At this point you can run the scripts in the package.json
file that were added by create-react-app
. I prefer to run these at the command line, but you can run them in Visual Studio as well using the "Task Runner Explorer" by Mads Kristensen.
Another possibility is to use the react extension in Visual Studio Code. That's not exactly what you asked for, but you get a look and feel similar to Visual studio and full React support.
I did this with VS 2017 using article (click here). There you would find a template called Blank Node.js Web Application, please find it here .
Few good to know points:
In Visual Studio 2017 there is no specific template for React as we have for Angular.
There's a difference if you create your project using cli (refer here) and with Visual Studio. Cli created project loads all modules by default in node_modules and hence takes around 132 MB initially, but in case you create project using Visual Studio it loads only the required modules in node_modules and hence takes around 75 MB initially. This matters when you start deploying it in production.
Hope it'll help you !
Disclaimer: It always depends on requirements.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With