Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Installing Packages: dependencies vs devDependencies in Node.js
📖 Scenario: You are creating a simple Node.js project. You need to install packages that your project needs to run and packages that help you during development but are not needed when the project runs in production.
🎯 Goal: Learn how to install packages as dependencies and devDependencies using npm. Understand the difference and how to specify each type.
📋 What You'll Learn
Create a package.json file for the project
Install the package express as a dependency
Install the package nodemon as a devDependency
Verify the package.json lists express under dependencies
Verify the package.json lists nodemon under devDependencies
💡 Why This Matters
🌍 Real World
Most Node.js projects need to manage packages that are required to run the app and packages that help during development like testing or live reload tools.
💼 Career
Understanding how to manage dependencies and devDependencies is essential for working on professional Node.js projects and collaborating with teams.
Progress0 / 4 steps
1
Initialize a Node.js project with package.json
Run the command npm init -y in your project folder to create a package.json file with default settings.
Node.js
Hint
Use npm init -y to quickly create a package.json file with default values.
2
Install express as a dependency
Run the command npm install express to add express as a dependency in your project.
Node.js
Hint
Use npm install express to add express to the dependencies section in package.json.
3
Install nodemon as a devDependency
Run the command npm install --save-dev nodemon to add nodemon as a devDependency in your project.
Node.js
Hint
Use npm install --save-dev nodemon to add nodemon to the devDependencies section in package.json.
4
Check package.json for dependencies and devDependencies
Open the package.json file and verify that express is listed under dependencies and nodemon is listed under devDependencies.
Node.js
Hint
Look inside package.json to see the two sections: dependencies and devDependencies. Each should list the correct package.
Practice
(1/5)
1. Which command installs a package as a regular dependency needed to run your Node.js app?
easy
A. npm uninstall express
B. npm install --save-dev express
C. npm install express
D. npm update express
Solution
Step 1: Understand the difference between dependencies and devDependencies
Dependencies are packages needed when your app runs, while devDependencies are only needed during development.
Step 2: Identify the correct npm command for dependencies
The command npm install express installs the package as a regular dependency by default.
Final Answer:
npm install express -> Option C
Quick Check:
Regular dependencies use npm install without flags [OK]
Hint: Use plain npm install for runtime dependencies [OK]
Common Mistakes:
Using --save-dev for packages needed at runtime
Confusing uninstall with install commands
Assuming npm update installs packages
2. Which of the following commands correctly installs a package as a development dependency?
easy
A. npm install lodash
B. npm install --save-dev jest
C. npm install --prod jest
D. npm install --global jest
Solution
Step 1: Recognize the flag for devDependencies
The flag --save-dev tells npm to install the package as a development dependency.
Step 2: Match the command with the correct flag
npm install --save-dev jest installs Jest as a devDependency, which is used for testing during development.
Final Answer:
npm install --save-dev jest -> Option B
Quick Check:
Dev dependencies use --save-dev flag [OK]
Hint: Use --save-dev flag for development-only packages [OK]
Common Mistakes:
Omitting --save-dev for dev dependencies
Using --prod which is not a valid flag for devDependencies
Installing globally instead of locally
3. Given the following package.json snippet, which package will NOT be installed when running npm install --production?
4. You run npm install --save-dev eslint but later realize you need eslint as a regular dependency. What is the best way to fix this?
medium
A. Run npm install eslint to add it as a dependency
B. Run npm install --save-prod eslint
C. Manually edit package.json to move eslint from devDependencies to dependencies
D. Run npm uninstall eslint then npm install eslint
Solution
Step 1: Understand npm behavior with existing packages
Running npm install eslint alone will not move it from devDependencies to dependencies if already installed as devDependency.
Step 2: Properly remove and reinstall as dependency
Uninstalling first removes it from devDependencies, then reinstalling adds it to dependencies.
Final Answer:
Run npm uninstall eslint then npm install eslint -> Option D
Quick Check:
Uninstall then install moves package between dependency types [OK]
Hint: Uninstall then reinstall to change dependency type [OK]
Common Mistakes:
Trying to install without uninstalling first
Editing package.json manually without reinstalling
Using non-existent --save-prod flag
5. You want to install webpack and babel packages. webpack is needed to run your app, but babel is only needed during development. Which commands correctly install them with proper dependency types?
hard
A. npm install webpack && npm install --save-dev babel
B. npm install webpack && npm install babel
C. npm install --save-dev webpack && npm install babel
D. npm install --save-dev webpack babel
Solution
Step 1: Identify runtime vs development packages
Webpack is needed at runtime, so it should be a regular dependency. Babel is only for development, so it should be a devDependency.
Step 2: Use correct npm commands for each
Use npm install webpack for runtime dependency and npm install --save-dev babel for development dependency.