DEV Community

Cover image for Understanding npm init, npx, and Vite (Without Memorizing Commands)
Riddhima Singh
Riddhima Singh

Posted on

Understanding npm init, npx, and Vite (Without Memorizing Commands)

I have noticed that many students create React projects without fully understanding what the commands actually mean. We often memorize these commands and use them without knowing what happens behind the scenes.
So, I did some research today to understand the purpose behind these commands.

When starting a React project, you see many commands like:

npm init -y
npm init
npx create-react-app
npm create vite@latest

They look similar, but they solve different problems.

1. What does npm init do?

npm init creates a JavaScript project.

It creates a file called:

package.json

This file is like the identity card of your project.

It stores information like:

{
"name": "my-project",
"version": "1.0.0",
"dependencies": {}
}

It tells npm:

What is this project called?
What packages does it need?
What commands can it run?

2. Difference between npm init and npm init -y
npm init

When you run:

npm init

npm asks questions:

package name:
version:
description:
entry point:
author:
license:

You answer them manually.

Example:

package name: collaborative-editor
version: 1.0.0
author: Your Name

Then npm creates package.json.

npm init -y

The -y means "yes."

It automatically accepts the default answers.

So:

npm init -y

means:

"Create package.json without asking me questions."

It is faster, but it does not create a React project.

It only creates the project configuration file.

3. What is npx?

Many people confuse npm and npx.

Think of it like this:

npm

npm = Node Package Manager

It is used to:

install packages
manage dependencies
run scripts

Example:

npm install react

This downloads React into your project.

npx

npx is included with npm.

It means:

"Execute a package."

Example:

npx create-react-app my-app

You are saying:

"Run the create-react-app tool."

It downloads the tool if needed, runs it, and creates your project.

4. What does temporary vs permanent mean?

Imagine you need a hammer.

Permanent installation

You buy a hammer and keep it at home.

Example:

npm install react

Now React is saved inside your project:

node_modules/

react/
react-dom/

Your project needs it every time.

Temporary usage

You borrow a hammer to build a table.

Example:

npx create-react-app

You need the tool once to create the project.

After it creates your files, you don't need the tool anymore.

5. What does npm create vite@latest mean?

Command:

npm create vite@latest

Break it down:

npm

Use npm.

create

Run a project creation tool.

vite

The tool we want.

@latest

Use the newest version of Vite.

So it means:

"Use the latest Vite project generator to create a project."

6. Is Vite downloaded temporarily?

Yes.

When you run:

npm create vite@latest

Vite is used as a generator.

Its job:

Vite
|
|-- creates files
|
|-- creates project structure
|
|-- finishes

Your project is then separate.

Later, your project installs its own dependencies:

npm install

Now your project gets things like:

_node_modules/

react
react-dom
vite
typescript
_
These stay with your project.

7. What was different with older React?

Older React projects commonly used:

npx create-react-app my-app

This did the same general thing:

create project
|

install React
|

install tools
|

start development server

The difference is mainly the tool used to build the project.

Create React App vs Vite
Create React App

Older approach:

create-react-app
|

Webpack
|

Bundle everything
|

Run app

It was simple for beginners but became slower and less flexible.

Vite

Modern approach:

Vite
|
|-- Fast development server
|
|-- Uses modern browser features
|
|-- Faster startup
|
|-- Faster updates while coding

Vite does not mean React.

Vite can create projects for:

React
Vue
Svelte
Vanilla JavaScript

React is the library.

Vite is the tool that helps build and run the project.

The complete picture

When creating your project:

npm create vite@latest
|

Vite creates files
|

You enter project
|

npm install
|

Downloads dependencies
|

npm run dev
|

Start coding

Remember this simple rule:

npm init

→ Create an empty JavaScript project.

npm install

→ Add packages permanently to your project.

npx

→ Run a package/tool without permanently installing the tool globally.

npm create vite@latest

→ Temporarily use Vite to generate a modern project.

npm run dev

→ Start your project.

Top comments (0)