# Fragments
# How to run the various scripts (i.e., lint, start, dev, debug).
# EsLint setup
>-npm install --save-dev eslint
>-npx eslint --init
You can also run this command directly using 'npm init @eslint/config'.
Need to install the following packages:
@eslint/create-config@0.4.3
Ok to proceed? (y) y
✔ How would you like to use ESLint? · problems
✔ What type of modules does your project use? · commonjs
✔ Which framework does your project use? · none
✔ Does your project use TypeScript? · no
✔ Where does your code run? · Node
✔ What format do you want your config file to be in? · JavaScript
After installing eslint npm and eslint extension, .eslintrc.js will be generated. Then, add lint script to package.json:
```json
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"lint": "eslint --config .eslintrc.js \"./src/**/*.js\""
},
```
Run npm run lint and make sure no errors
>- npm run lint
# Prettier setup
>-npm install --save-dev --save-exact prettier
Create a .prettierrc file, and add the code to the file
```json
{
"arrowParens": "always",
"bracketSpacing": true,
"embeddedLanguageFormatting": "auto",
"endOfLine": "lf",
"insertPragma": false,
"proseWrap": "preserve",
"requirePragma": false,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "es5",
"useTabs": false,
"printWidth": 100
}
```
Create a .prettierignore file and add node_modules/ package.json package-lock.json to ignore these files
Install the Prettier - Code Formatter VSCode Extension.
Create .vscode/setting.json and add this code to it
```json
{
"editor.insertSpaces": true,
"editor.tabSize": 2,
"editor.detectIndentation": false,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll": true
},
"files.eol": "\n",
"files.insertFinalNewline": true
}
```
# Curl and jq installation
1. Install Curl and jq from powershell
2. Run the server
>-node src/server.js
3. Run `curl localhost:8080` in powershell
4. Run `curl -s localhost:8080 | jq` to pretty-print the JSON
(NOTE: the -s option silences the usual output to CURL, only sending the response from the server to jq)
# Server Startup Scripts
Install nodemon to get server reloaded whenever code changes
>- npm install --save-dev nodemon
>- npm install --save-dev cross-env
Add some scripts to package.json
```json
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"lint": "eslint --config .eslintrc.js \"./src/**/*.js\"",
"start": "node src/server.js",
"dev": "cross-env LOG_LEVEL=debug nodemon ./src/server.js --watch src",
"debug": "cross-env LOG_LEVEL=debug nodemon --inspect=0.0.0.0:9229 ./src/server.js --watch src"
}
```
Start server by runing one of these comman:
>-npm start
>-npm run dev
>-npm run debug (for debugging)