Setting everything up
Install Node
and npm
using nvm
# Install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# Install node and npm
nvm install 20.10.0
# Set the default version of node
nvm alias default 20.10.0
The web-application
In Documents
, I created a directory called web-application
. The directory structure is as follows (only the interesting stuff):
web-application
├── client
│ └── src
│ ├── App.css
│ └── App.tsx
└── server
├── server.ts
└── tsconfig.json
The React application
Create the app
Run this command in the Documents folder:
npx create-react-app client --template typescript
npm install axios cors
Run the app
cd client
npm start
Add ✨bling🌟 to it (TailWind CSS)
npm install tailwindcss
npx tailwindcss init
Next, add the following to tailwind.config.js
:
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./src/**/*.{js,jsx,ts,tsx}",
],
theme: {
extend: {},
},
plugins: [],
}
In src/index.css, add the following:
@tailwind base;
@tailwind components;
@tailwind utilities;
Build! npm run build
Make images work
In the src/
directory, create a folder called types
, and add a file called declarations.d.ts
with the following content:
declare module "*.png" {
const value: any;
return value;
}
declare module "*.svg" {
const content: any;
export default content;
}
declare module "*.gif" {
const src: any;
return src;
}
The Node server
cd into the web-application
directory and run the following commands:
mkdir server
cd server
npm init -y
npm install express
node server.ts
To make it easier in the development process, I installed ts-node
and nodemon
globally:
npm install -g ts-node nodemon
Now, to run the app, I can simply run nodemon server.ts
. This will automatically restart the server when I make changes to the code. It also lets me restart the server by pressing rs
and exit by pressing Ctrl + C
.
Setting up git
git config --global user.name "Tudor Radoni"
git config --global user.email "tudor.radoni@gmail.com"
git config --global code.editor vim
git config --global init.defaultBranch main
To check if everything is set up correctly, run git config --list
.
$ git config --list
user.name=Tudor Radoni
user.email=tudor.radoni@gmail.com
code.editor=vim
init.defaultbranch=main
Setting up the repository
I added a .gitignore
file, which contains the following templates:
- Node
- default template for React (automatically added by
create-react-app
)
git init
git add .
git commit -m "Initial commit"