Bird
Raised Fist0
Node.jsframework~5 mins

Installing packages (dependencies vs devDependencies) in Node.js - Quick Revision & Summary

Choose your learning style10 modes available

Start learning this pattern below

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
Recall & Review
beginner
What is the difference between dependencies and devDependencies in a Node.js project?

dependencies are packages needed for the app to run in production.
devDependencies are packages only needed during development, like testing or building tools.

Click to reveal answer
beginner
Which command installs a package as a devDependency using npm?

Use npm install <package> --save-dev or the shortcut npm i <package> -D.

Click to reveal answer
intermediate
Why should you separate dependencies and devDependencies?

Separating helps keep production installs small and fast by only installing what the app needs to run.
It also avoids shipping unnecessary tools to users.

Click to reveal answer
intermediate
What happens if you run npm install in production mode?

Only dependencies are installed, skipping devDependencies to save space and time.

Click to reveal answer
beginner
How can you check which packages are listed as dependencies or devDependencies?

Look inside the package.json file under the dependencies and devDependencies sections.

Click to reveal answer
Which npm command installs a package as a regular dependency?
Anpm install express
Bnpm install express --save-dev
Cnpm install express -D
Dnpm uninstall express
Where are devDependencies listed in a Node.js project?
AIn the <code>node_modules</code> folder only
BIn the <code>package.json</code> file under <code>devDependencies</code>
CIn the <code>package-lock.json</code> file
DIn the <code>README.md</code> file
What is the main reason to use devDependencies?
ATo update packages automatically
BTo include packages needed in production
CTo include packages only needed during development
DTo uninstall packages
If you run npm install --production, what happens?
AOnly <code>dependencies</code> are installed
BOnly <code>devDependencies</code> are installed
CBoth <code>dependencies</code> and <code>devDependencies</code> are installed
DNo packages are installed
Which of these is NOT a devDependency?
AA code linter like ESLint
BA bundler like Webpack
CA testing library like Jest
DA runtime framework like Express
Explain the difference between dependencies and devDependencies in a Node.js project and why it matters.
Think about what packages your app needs when running versus when building or testing.
You got /4 concepts.
    Describe how you would install a package only for development and how to check it in your project files.
    Focus on the npm command and where the info is stored.
    You got /3 concepts.

      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

      1. Step 1: Understand the difference between dependencies and devDependencies

        Dependencies are packages needed when your app runs, while devDependencies are only needed during development.
      2. Step 2: Identify the correct npm command for dependencies

        The command npm install express installs the package as a regular dependency by default.
      3. Final Answer:

        npm install express -> Option C
      4. 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

      1. Step 1: Recognize the flag for devDependencies

        The flag --save-dev tells npm to install the package as a development dependency.
      2. 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.
      3. Final Answer:

        npm install --save-dev jest -> Option B
      4. 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?
      {
        "dependencies": {
          "express": "^4.18.2"
        },
        "devDependencies": {
          "mocha": "^10.2.0"
        }
      }
      medium
      A. mocha
      B. express
      C. both express and mocha
      D. neither express nor mocha

      Solution

      1. Step 1: Understand the effect of --production flag

        The --production flag tells npm to install only the packages listed under dependencies, skipping devDependencies.
      2. Step 2: Identify which packages are devDependencies

        Here, mocha is under devDependencies, so it will NOT be installed with npm install --production.
      3. Final Answer:

        mocha -> Option A
      4. Quick Check:

        DevDependencies skipped with --production flag [OK]
      Hint: npm install --production skips devDependencies [OK]
      Common Mistakes:
      • Assuming all packages install regardless of flags
      • Confusing dependencies with devDependencies
      • Thinking --production installs devDependencies
      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

      1. 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.
      2. Step 2: Properly remove and reinstall as dependency

        Uninstalling first removes it from devDependencies, then reinstalling adds it to dependencies.
      3. Final Answer:

        Run npm uninstall eslint then npm install eslint -> Option D
      4. 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

      1. 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.
      2. Step 2: Use correct npm commands for each

        Use npm install webpack for runtime dependency and npm install --save-dev babel for development dependency.
      3. Final Answer:

        npm install webpack && npm install --save-dev babel -> Option A
      4. Quick Check:

        Runtime = npm install, Dev = npm install --save-dev [OK]
      Hint: Install runtime normally, dev tools with --save-dev [OK]
      Common Mistakes:
      • Installing all packages as devDependencies
      • Installing dev tools as regular dependencies
      • Using --save-dev for runtime packages