Skip to content

Commit 2d7c0b7

Browse files
committedMay 31, 2024
setup and init
1 parent 8f79f4c commit 2d7c0b7

File tree

28 files changed

+5511
-0
lines changed

28 files changed

+5511
-0
lines changed
 

Diff for: ‎.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
node_modules
2+
.DS_Store
3+
build

Diff for: ‎README.md

+145
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
# Welcome to the ReactTraining.com's Node Workshop
2+
3+
Before attending the training, please make sure you install the code (not just clone) and run it to make sure it works. The most common problems for not being able to install and run are related to network configurations at the workshop venue like proxies. If your having these or other issues see the Troubleshooting section below.
4+
5+
## The "What do I need to do before attending the workshop" Checklist:
6+
7+
- [ ] Bring a laptop (don't forget a long power cord).
8+
- [ ] Install and run this code. If doing `npm start` after installing shows a welcome message, you're all set.
9+
- [ ] [Become familiar with basic Node and NPM CLI ahead of time](./cli.md)
10+
- [ ] [Learn the JavaScript syntax that matters the most to React](https://reacttraining.com/blog/javascript-the-react-parts/). Even though this is a "Node" workshop, all the material in that article still applies since it's trying to bring you up to speed with modern JS syntax.
11+
- [ ] WAIT! Does your company or computer use a VPN or any sort of proxy? That might cause some issues. Someome on your team probably knows how to get around the issues. We can't really help out because the issues surrounding VPN's and Proxies are so diverse and out of our control.
12+
13+
## Install Git, Node, and NPM
14+
15+
If you have any problems with these steps, make sure you see the [Troubleshooting](#troubleshooting) section below.
16+
17+
**Need to install Git?** - http://git-scm.com/downloads
18+
19+
**Need to install Node?** We recommend using [NVM (Node Version Manager)](https://github.com/nvm-sh/nvm) instead of installing from source. Installing from source works, but it's difficult to maintain your node version later on (which is why `nvm` exists). Please see the Windows section for a different install process.
20+
21+
**Windows Users!** Please read the [Windows Users](#windows-users) section below for installing NVM, Node, and WSL.
22+
23+
If you need to verify that you have NVM installed: `nvm --version`. Then install Node:
24+
25+
```sh
26+
# Installs latest LTS version of node
27+
# See this page for more install options: https://github.com/nvm-sh/nvm#usage
28+
$ nvm install node
29+
30+
# lists out the versions of node that you're managing with nvm including
31+
# which one is the current one in your CLI
32+
$ nvm list
33+
```
34+
35+
Verify you have Git, Node, and NPM installed. Installing Node will install NPM.
36+
37+
```sh
38+
$ git --version
39+
$ node --version
40+
$ npm --version
41+
```
42+
43+
You don't necessarily need the latest version of Node for this workshop.
44+
45+
## Install Workshop Code
46+
47+
Then **clone**, **install**, and **run** the app:
48+
49+
```sh
50+
# Clone the repo to your local machine (This just clones, it does not "install")
51+
$ git clone https://github.com/ReactTraining/node-workshop.git
52+
53+
# Whichever directory you run the above command from, that directory should
54+
# now have a folder called `node-workshop`.
55+
56+
# Change directory to the `node-workshop` folder:
57+
$ cd node-workshop
58+
59+
# Install and run. Make sure you do these two commands from within the `node-workshop` folder:
60+
$ npm install
61+
$ npm start
62+
63+
# If you have issues, read below.
64+
```
65+
66+
You should be able to run `npm start` and see a welcome message. If you do, you're all set for the workshop.
67+
68+
If something goes wrong, you may need to see the [Troubleshooting](#troubleshooting) section below. We even have a special section for [Windows Users](#windows-users)
69+
70+
## Troubleshooting
71+
72+
A few common problems:
73+
74+
- **You're having problems cloning the repository.** Some corporate networks block port 22, which git uses to communicate with GitHub over SSH. Instead of using SSH, clone the repo over HTTPS. Use the following command to tell git to always use `https` instead of `git`:
75+
76+
```sh
77+
$ git config --global url."https://".insteadOf git://
78+
79+
# This adds the following to your `~/.gitconfig`:
80+
[url "https://"]
81+
insteadOf = git://
82+
```
83+
84+
- **You're having trouble installing Node.** We recommend using [nvm](https://github.com/creationix/nvm). nvm makes it really easy to use multiple versions of node on the same machine painlessly. After you install nvm, install the latest stable version of node with the following command:
85+
86+
```sh
87+
$ nvm use default stable
88+
```
89+
90+
- **You don't have permissions to install stuff.** You might see an error like `EACCES` during the `npm install` step. If that's the case, it probably means that at some point you did an `sudo npm install` and installed some stuff with root permissions. To fix this, you need to forcefully remove all files that npm caches on your machine and re-install without sudo.
91+
92+
```sh
93+
$ sudo rm -rf node_modules
94+
95+
# If you installed node with nvm (suggested):
96+
$ sudo rm -rf ~/.npm
97+
98+
# If you installed node with Homebrew:
99+
$ sudo rm -rf /usr/local/lib/node_modules
100+
101+
# Then (look ma, no sudo!):
102+
$ npm install
103+
```
104+
105+
- **You can't run node with `npm start`.** Make sure you can see a `node_modules` folder at the root. If you can't you need to run `npm install` from the root of the repo.
106+
107+
## Windows Users
108+
109+
There are two days to get NVM (Node Version Manager) -- the "Windows" way and the "Linux" way. Lots of open source command-line tools are written for Linux (Unix) systems so they might be problematic when we try to use their Windows way to do it. But if you can get it to work, it's probably the most simple approach. To use NVM for Windows, follow their instructions here: https://docs.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-windows
110+
111+
### Or...
112+
113+
You can use use Windows Subsystem for Linux (WSL) instead of GitBash or PowerShell and essentially host a Linux environment on Windows. This way is a little more involved but we've had lots of success with our Windows audience in our workshop when they do the WSL approach.
114+
115+
- WSL 2 Installation: https://docs.microsoft.com/en-us/windows/wsl/install-win10
116+
- Node on Windows: https://docs.microsoft.com/en-us/windows/nodejs/setup-on-wsl2
117+
118+
From their docs:
119+
120+
> "There are multiple ways to install Node.js. We recommend using a version manager as versions change very quickly. You will likely need to switch between multiple versions based on the needs of different projects you're working on"
121+
122+
They will recommend you install `nvm` (Node Version Manager). We agree!
123+
124+
<hr />
125+
126+
Not using WSL can have a few problems that might arise in a Windows Environment:
127+
128+
- Permissions issues when attempting to clone the repo. If you are using WSL but usually use another shell, you may want to copy your SSH keys where WSL can access them. [This article explains why this is necessary and how to do it.](https://devblogs.microsoft.com/commandline/sharing-ssh-keys-between-windows-and-wsl-2/)
129+
- Error after install. Chances are the `npm install` went well but we also do a `postinstall` script to create the `database.json` file. See the [Database](#database) section above for details.
130+
- If you're able to successfully run the app once but it doesn't start on the subsequent runs, chances are the database port didn't shut down when you recently stopped the app. See the [Database](#database) section above for details.
131+
- If you do `npm run app` or `npm start` and you get weird errors instead of our menu system, we don't know what that is yet but the only reporters have been using GitBash instead of PowerShell.
132+
133+
<hr />
134+
135+
If you're a Windows user who already does active JS/Node development then you should be good-to-go. Otherwise this section might be able to help.
136+
137+
Consider using [VSCode](https://code.visualstudio.com/download) (A lightweight version of Visual Studio) for our workshops as it is probably more appropriately suited for modern JavaScript development than Visual Studio, Eclipse, IntelliJ, etc. It has a terminal built-in which uses PowerShell by default, but you can configure it to use WSL which is what we recommend.
138+
139+
If you want, you can go into Windows' settings to turn on file extensions. In JavaScript projects, it's common to have a filename like `.gitignore` which would be difficult to see without extensions turned on. It's not required though.
140+
141+
If these instructions for Windows users can be improved, please let us know or make a PR!
142+
143+
## License
144+
145+
This material is available for private, non-commercial use under the [GPL version 3](http://www.gnu.org/licenses/gpl-3.0-standalone.html). If you would like to use this material to conduct your own workshop, please contact us at [hello@reacttraining.com](mailto:hello@reacttraining.com).

Diff for: ‎examples/01-installing/NOTES.md

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Node and NPM Commands
2+
3+
When you install Node, it comes with NPM (Node Package Manager)
4+
5+
```sh
6+
# Get the node version (or use `node --version`)
7+
# Also use this just to check if node is installed
8+
node -v
9+
10+
# Get the npm version or check to see if installed
11+
npm -v
12+
```
13+
14+
You can install node from source, but if you're able to, we recommend using NVM (see below).
15+
16+
By the way, Even numbers are LTS in Node. It's probably best to install the latest LTS active version. See https://nodejs.org/en/about/releases/ for more details.
17+
18+
## NVM (Node Version Manager)
19+
20+
This is an unofficial tool to help install and manage different versions of Node on one machine. From their docs:
21+
22+
> nvm is a version manager for node.js, designed to be installed per-user, and invoked per-shell. nvm works on any POSIX-compliant shell (sh, dash, ksh, zsh, bash), in particular on these platforms: unix, macOS, and windows WSL.
23+
24+
If you need help installing nvm on Windows, you'll need WSL. See our main [Readme](./README.md) and https://docs.microsoft.com/en-us/windows/nodejs/setup-on-wsl2
25+
26+
For how to install and use nvm: https://github.com/nvm-sh/nvm
27+
28+
```sh
29+
# List out the node versions you have, and see which one is currently being used:
30+
nvm list
31+
32+
# Switch to 18
33+
nvm use 18
34+
35+
# Install 20
36+
nvm install 20
37+
```
38+
39+
Also explain how NVM defaults work

Diff for: ‎examples/02-npm-basics/NOTES.md

+178
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
# NPM Basics
2+
3+
"80/20 rule"
4+
5+
In reality for NPM it's more like the 95/5 rule. You only need to know 5% of the things NPM can do in order to do the vast majority of your work.
6+
7+
Start an NPM project: `npm init` or `npm init -y`
8+
9+
This will make `package.json` which is:
10+
11+
- A manifest file of dependencies
12+
- Project settings
13+
- Project meta-data
14+
- A way to run scripts _with_ package.json settings
15+
16+
## Alternatives
17+
18+
- yarn
19+
- pnpm
20+
- bun
21+
22+
## Dependencies
23+
24+
Topics:
25+
26+
- Installing deps with `npm install <package>` or `npm i <package>`
27+
- "dependencies" vs "devDependencies": `npm i -D <package>`
28+
- Package-lock
29+
- SEMVER: 1.2.3 (Major.Minor.Patch)
30+
- Semver ranges: ^ (for minor) and ~ (for patch)
31+
- `^1.0.0` in package.json means we're eligible to be using `1.1.0` in package-lock
32+
- Installing specific versions: `npm install package@1.0`
33+
- Uninstalling via `npm uninstall <package>`
34+
35+
# Using an existing project
36+
37+
If you've just cloned an existing project, it will have `package.json` and `package-lock.json` already since these are committed in git. You won't have a `node_modules` folder though since we don't typically commit those to git (since they're big).
38+
39+
Run `npm install` without adding a package name and it will seek through all the packages listed in `package.json` and it will make your `node_modules` folder.
40+
41+
# Common Commands
42+
43+
```sh
44+
# Docs for `npm install`
45+
# https://docs.npmjs.com/cli/v6/commands/npm-install
46+
47+
# This command will install all dev and production dependencies found in
48+
# package.json. It's typically used when you've just cloned a repo. The
49+
# repo will come with a #package.json but not a node_modules folder, so
50+
# this command will install all files in node_modules:
51+
npm install
52+
53+
# Alias for `npm install`
54+
npm i
55+
56+
# Install a specific package into node_modules. It also adds the package
57+
# to the dependencies property of package.json:
58+
npm i <package-name>
59+
60+
# Same as above but adds to devDependencies section of package.json. You
61+
# can also use `--save-dev`
62+
npm i <package-name> -D
63+
64+
# Install a package globally (outside of your project in npm's global
65+
# folder on your machine). This is typically used when the package is
66+
# going to add a binary for you to use in CLI.
67+
npm i -g <package-name>
68+
69+
# For example
70+
npm i -g http-server
71+
72+
# Now you can navigate to any path on your computer and run this command
73+
http-server
74+
75+
# http-server will run the local path as a web server, using the files
76+
# as static assets.
77+
78+
# List NPM modules installed in the current path's node_modules folder
79+
npm list --depth=0
80+
81+
# List NPM modules installed globally on machine
82+
npm list -g --depth=0
83+
```
84+
85+
## Scripts
86+
87+
Topics:
88+
89+
- Show the basics of scripts: Run a node file via `"start": "node index.js"`
90+
- Show `npm run <script>` vs defaults like `npm start`
91+
- Binaries: `npm install http-server` and show how we can't just do `$ http-server`
92+
but rather we have to made a script so NPM can run the correct binary in NODE_MODULES
93+
94+
## Installing Globally
95+
96+
Topics:
97+
98+
- `npm install -g <package>` vs `npx <package>`
99+
- Show `http-server` for example
100+
101+
## Maintenance
102+
103+
Fixes dependencies and transitive dependencies when they need to be updated from a security standpoint. You will be notified via CLI when you need to run this
104+
105+
- `npm audit`: List them
106+
- `npm audit fix`: Fix them
107+
108+
## package.json
109+
110+
- Explain `engines`
111+
If we `npm i` something that's not compatible with engines, we'll get a warning
112+
113+
```json
114+
{
115+
// The name of your project (must be lowercase and one word, or hyphenated)
116+
"name": "my-project",
117+
118+
// The version of your project (follow semantic versioning: MAJOR.MINOR.PATCH)
119+
"version": "1.0.0",
120+
121+
// A brief description of your project
122+
"description": "A brief description of my awesome project",
123+
124+
// The entry point file of your project (commonly "index.js")
125+
"main": "index.js",
126+
127+
// Keywords to help others find your project (an array of strings)
128+
"keywords": ["example", "project", "node"],
129+
130+
// The author of the project (your name and email)
131+
"author": "Your Name <your.email@example.com>",
132+
133+
// The license under which your project is released
134+
"license": "MIT",
135+
136+
// Scripts to automate tasks (run with `npm run <script-name>`)
137+
"scripts": {
138+
"start": "node index.js",
139+
"test": "echo \"Error: no test specified\" && exit 1"
140+
},
141+
142+
// Dependencies required for your project to run
143+
"dependencies": {
144+
"express": "^4.17.1"
145+
},
146+
147+
// Development dependencies for your project (only needed during development)
148+
"devDependencies": {
149+
"nodemon": "^2.0.12",
150+
"eslint": "^7.32.0"
151+
},
152+
153+
// Peer dependencies (specify compatible versions of packages your project works with)
154+
"peerDependencies": {
155+
"react": "^17.0.2"
156+
},
157+
158+
// Engines field to specify versions of Node.js and npm your project is compatible with
159+
"engines": {
160+
"node": ">=14.0.0",
161+
"npm": ">=6.0.0"
162+
},
163+
164+
// Repository information (useful if your project is hosted on a platform like GitHub)
165+
"repository": {
166+
"type": "git",
167+
"url": "https://github.com/yourusername/my-awesome-project.git"
168+
},
169+
170+
// Bugs field to specify where issues and bugs should be reported
171+
"bugs": {
172+
"url": "https://github.com/yourusername/my-awesome-project/issues"
173+
},
174+
175+
// Homepage of the project (usually a website or GitHub repository)
176+
"homepage": "https://github.com/yourusername/my-awesome-project#readme"
177+
}
178+
```

Diff for: ‎examples/02-npm-basics/package.json

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"name": "npm-basics",
3+
"version": "1.0.0",
4+
"main": "index.js",
5+
"scripts": {
6+
"test": "echo \"Error: no test specified\" && exit 1"
7+
},
8+
"author": "",
9+
"license": "ISC",
10+
"description": ""
11+
}

Diff for: ‎examples/03-module-basics/NOTES.md

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Module Basics
2+
3+
- CommonJS vs ESM (EcmaScript Modules)
4+
- "EcmaScript" === the official name of JavaScript
5+
- Default vs Named import/exports
6+
7+
MDN: The official docs for HTML, CSS, and JS
8+
9+
https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/export
10+
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import
11+
12+
## package.json
13+
14+
```json
15+
{
16+
// Default. We don't need to add
17+
"type": "commonjs",
18+
19+
// Needed if we want to use ESM
20+
"type": "module"
21+
}
22+
```
23+
24+
Sometimes we don't need to designate `type: module` if we're not running Node directly but rather a bundler like Webpack is running and understands ESM

Diff for: ‎examples/03-module-basics/index.js

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
const sayHi = require('./utils')
2+
3+
sayHi()

Diff for: ‎examples/03-module-basics/package.json

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"name": "module-basics",
3+
"// type": "commonjs",
4+
"scripts": {
5+
"start": "node index.js"
6+
}
7+
}

Diff for: ‎examples/03-module-basics/utils.js

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
function sayHi() {
2+
console.log("Hello CommonJS (Node's original module resolver)")
3+
}
4+
5+
module.exports = sayHi

Diff for: ‎examples/04-browser-modules/app/index.html

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
4+
<head>
5+
<meta charset="UTF-8">
6+
<title>Example</title>
7+
</head>
8+
9+
<body>
10+
<h1>Browser Modules</h1>
11+
<p>
12+
Check the JavaScript console in the browser.
13+
</p>
14+
<p>
15+
Also, see the MDN docs on <a target="_blank"
16+
href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#browser_compatibility">script tags</a>
17+
</p>
18+
<script type="module" src="index.js"></script>
19+
</body>
20+
21+
</html>

Diff for: ‎examples/04-browser-modules/app/index.js

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { sayHi } from './utils.js'
2+
3+
sayHi()

Diff for: ‎examples/04-browser-modules/app/utils.js

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export function sayHi() {
2+
console.log("Let's bundle this code")
3+
}

Diff for: ‎examples/04-browser-modules/package-lock.json

+548
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: ‎examples/04-browser-modules/package.json

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"name": "browser-modules",
3+
"type": "module",
4+
"scripts": {
5+
"start": "http-server app -p 3000"
6+
},
7+
"devDependencies": {
8+
"http-server": "^14.1.1"
9+
}
10+
}

Diff for: ‎examples/05-bundling/NOTES.md

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
- Show basic bundling with ESBuild
2+
- We'll do minified bundling next for the browser

Diff for: ‎examples/05-bundling/app/index.js

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { sayHi } from './utils.js'
2+
3+
sayHi()

Diff for: ‎examples/05-bundling/app/utils.js

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export function sayHi() {
2+
console.log("Let's bundle this code")
3+
}

Diff for: ‎examples/05-bundling/package-lock.json

+419
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: ‎examples/05-bundling/package.json

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"name": "bundling",
3+
"type": "module",
4+
"scripts": {
5+
"build": "esbuild app/index.js --bundle --outfile=build/build.js"
6+
},
7+
"devDependencies": {
8+
"esbuild": "0.21.4"
9+
}
10+
}

Diff for: ‎examples/06-bundle-for-browser/app/index.html

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
4+
<head>
5+
<meta charset="UTF-8">
6+
<title>Example</title>
7+
</head>
8+
9+
<body>
10+
<h1>Bundle for the Browser</h1>
11+
<p>Check the JavaScript console in the browser</p>
12+
<script src="build.js"></script>
13+
</body>
14+
15+
</html>

Diff for: ‎examples/06-bundle-for-browser/app/index.js

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { sayHi } from './utils.js'
2+
3+
sayHi()

Diff for: ‎examples/06-bundle-for-browser/app/utils.js

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export function sayHi() {
2+
console.log("Let's bundle this code")
3+
}

Diff for: ‎examples/06-bundle-for-browser/package-lock.json

+2,420
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: ‎examples/06-bundle-for-browser/package.json

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"name": "bundling-for-browser",
3+
"type": "module",
4+
"scripts": {
5+
"// Can't run two things in parallel": "",
6+
"dev-bad": "npm run dev:build && npm run dev:server",
7+
"dev:build": "node scripts/run-build.js",
8+
"dev:server": "http-server build -p 3000",
9+
"// Explain run-p, aka npm-run-all --parallel": "",
10+
"dev": "run-p dev:*"
11+
},
12+
"devDependencies": {
13+
"chokidar": "^3.6.0",
14+
"esbuild": "0.21.4",
15+
"http-server": "^14.1.1",
16+
"npm-run-all": "^4.1.5"
17+
}
18+
}

Diff for: ‎examples/06-bundle-for-browser/scripts/run-build.js

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { promises as fsPromises } from 'fs' // the esm version
2+
import * as esbuild from 'esbuild'
3+
import { watch } from 'chokidar'
4+
5+
async function build() {
6+
await esbuild.build({
7+
entryPoints: ['app/index.js'],
8+
bundle: true,
9+
outfile: 'build/build.js',
10+
minify: true,
11+
sourcemap: true,
12+
})
13+
14+
await fsPromises.copyFile('app/index.html', 'build/index.html')
15+
}
16+
build()
17+
18+
const watcher = watch(['app/**/*'])
19+
console.log('Watching app')
20+
watcher.on('change', () => {
21+
console.log('Rebuilding...')
22+
build()
23+
})

Diff for: ‎lessons/03-javascript-browser/lecture/index.html

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
4+
<head>
5+
<meta charset="UTF-8">
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
7+
<title>JavaScript</title>
8+
</head>
9+
10+
<body>
11+
Hello
12+
</body>
13+
14+
</html>

Diff for: ‎package-lock.json

+1,558
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: ‎package.json

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"name": "javascript-node-workshop",
3+
"private": true,
4+
"scripts": {
5+
"/////////// LECTURES:": "",
6+
"lecture-1": "cd lessons/01-javascript/lecture && http-server -p 3000"
7+
},
8+
"devDependencies": {
9+
"@eslint/js": "^9.3.0",
10+
"eslint": "^9.3.0",
11+
"globals": "^15.3.0",
12+
"http-server": "^14.1.1"
13+
},
14+
"prettier": {
15+
"printWidth": 100,
16+
"semi": false,
17+
"singleQuote": true,
18+
"tabWidth": 2
19+
}
20+
}

0 commit comments

Comments
 (0)
Please sign in to comment.