Bird
Raised Fist0
Denoframework~20 mins

Using npm packages in Deno - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Npm Package Mastery in Deno
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What is the output of this Deno code importing an npm package?

Consider this Deno script that imports the lodash npm package and uses its capitalize function:

import { capitalize } from "npm:lodash";

console.log(capitalize("deno"));

What will this code print when run with deno run --allow-net?

Deno
import { capitalize } from "npm:lodash";

console.log(capitalize("deno"));
A"Deno"
B"deno"
CTypeError: capitalize is not a function
DSyntaxError: Unexpected token import
Attempts:
2 left
💡 Hint

Think about what the capitalize function does to a string.

📝 Syntax
intermediate
2:00remaining
Which import statement correctly loads an npm package in Deno?

Which of the following import statements correctly imports the axios npm package in a Deno script?

Aimport axios from "./node_modules/axios/index.js";
Bimport axios from "https://cdn.skypack.dev/axios";
Cconst axios = require("axios");
Dimport axios from "npm:axios";
Attempts:
2 left
💡 Hint

Deno supports direct npm imports with a special prefix.

🔧 Debug
advanced
2:00remaining
Why does this Deno script fail to run?

Given this Deno script:

import { v4 } from "npm:uuid";

console.log(v4());

Running deno run script.ts results in an error: Uncaught ReferenceError: crypto is not defined. What is the most likely cause?

Deno
import { v4 } from "npm:uuid";

console.log(v4());
AThe script lacks the <code>--unstable</code> flag needed for crypto API in Deno.
BThe <code>uuid</code> package is not compatible with Deno's npm support.
CDeno requires <code>--allow-net</code> permission to run this script.
DThe <code>v4</code> function is not exported by the uuid package.
Attempts:
2 left
💡 Hint

Deno's crypto API is behind a flag in some versions.

❓ state_output
advanced
2:00remaining
What is the value of variable result after running this Deno code?

Consider this Deno script using the dayjs npm package:

import dayjs from "npm:dayjs";

const result = dayjs("2024-01-01").add(1, "month").format("YYYY-MM-DD");
console.log(result);

What will be printed?

Deno
import dayjs from "npm:dayjs";

const result = dayjs("2024-01-01").add(1, "month").format("YYYY-MM-DD");
console.log(result);
A"2024-01-31"
B"2024-02-29"
C"2024-02-01"
D"2024-03-01"
Attempts:
2 left
💡 Hint

Adding one month to January 1st should move to February 1st.

🧠 Conceptual
expert
2:00remaining
Which statement about using npm packages in Deno is TRUE?

Choose the correct statement about how Deno handles npm packages:

ADeno automatically converts all CommonJS npm packages to ES modules without any configuration.
BDeno requires explicit permission flags to access network or file system when using npm packages that perform such operations.
CDeno caches npm packages only in memory and downloads them every time the script runs.
DDeno does not support importing npm packages that have native C++ bindings.
Attempts:
2 left
💡 Hint

Think about Deno's security model and how it applies to npm packages.

Practice

(1/5)
1. What is the correct way to import an npm package named lodash in a Deno script?
easy
A. import _ from "npm:lodash";
B. import _ from "https://cdn.lodash.com/lodash.js";
C. import _ from "deno:lodash";
D. import _ from "node_modules/lodash";

Solution

  1. Step 1: Understand Deno npm import syntax

    Deno uses the syntax import package from "npm:package-name" to import npm packages directly.
  2. Step 2: Match the syntax to the lodash package

    Using import _ from "npm:lodash"; correctly imports lodash from npm in Deno.
  3. Final Answer:

    import _ from "npm:lodash"; -> Option A
  4. Quick Check:

    npm import syntax = import from "npm:package" [OK]
Hint: Use import from "npm:package-name" to add npm packages [OK]
Common Mistakes:
  • Using URL imports instead of npm: prefix
  • Trying to import from local node_modules folder
  • Using incorrect prefix like deno: or https:
2. Which of the following is the correct syntax to import the axios package from npm in Deno?
easy
A. import axios from "npm:axios";
B. import axios from "npm axios";
C. import axios from "npm:/axios";
D. import axios from "npm::axios";

Solution

  1. Step 1: Check correct npm import syntax

    The correct syntax uses a colon after npm, no spaces or extra characters: npm:package-name.
  2. Step 2: Identify the valid option

    Only import axios from "npm:axios"; matches the correct syntax.
  3. Final Answer:

    import axios from "npm:axios"; -> Option A
  4. Quick Check:

    Correct npm import = "npm:package" [OK]
Hint: Remember no spaces or extra symbols in npm import path [OK]
Common Mistakes:
  • Adding spaces between npm and package name
  • Using slashes or double colons incorrectly
  • Omitting the npm: prefix
3. Given this Deno code snippet, what will be the output?
import chalk from "npm:chalk";
console.log(chalk.green("Success!"));
medium
A. Runtime error: chalk is undefined.
B. A syntax error because chalk cannot be imported this way.
C. The text 'chalk.green("Success!")' printed literally.
D. The text 'Success!' printed in green color in the console.

Solution

  1. Step 1: Understand chalk npm package usage

    Chalk colors console text. Importing via npm in Deno works if syntax is correct.
  2. Step 2: Analyze the console.log statement

    Calling chalk.green("Success!") returns the string 'Success!' styled green in supported terminals.
  3. Final Answer:

    The text 'Success!' printed in green color in the console. -> Option D
  4. Quick Check:

    npm chalk import + chalk.green() = green text output [OK]
Hint: chalk colors text; npm import works if syntax is right [OK]
Common Mistakes:
  • Assuming import fails without checking syntax
  • Expecting literal string output instead of colored text
  • Confusing runtime errors with import errors
4. What is wrong with this Deno code snippet?
import express from "npm:express";
const app = express();
app.listen(3000);
console.log("Server running on port 3000");
medium
A. The import statement syntax is incorrect.
B. Deno does not support importing express from npm.
C. Missing permission flag to allow network access.
D. express() is not a function in this context.

Solution

  1. Step 1: Check import syntax and package support

    Importing express from npm is valid syntax in Deno 1.28+ and later.
  2. Step 2: Identify runtime requirements

    Running a server requires network permissions. Without --allow-net, Deno blocks network calls causing failure.
  3. Final Answer:

    Missing permission flag to allow network access. -> Option C
  4. Quick Check:

    Network access needs --allow-net flag in Deno [OK]
Hint: Remember to add --allow-net for server network access [OK]
Common Mistakes:
  • Assuming all npm packages work without permissions
  • Confusing import syntax errors with permission errors
  • Not running Deno with required flags
5. You want to use the npm package uuid in Deno to generate a version 4 UUID. Which code snippet correctly imports and uses it?
hard
A. import v4 from "npm:uuid"; console.log(v4());
B. import { v4 as uuidv4 } from "npm:uuid"; console.log(uuidv4());
C. import uuid from "npm:uuid"; console.log(uuid.v4());
D. import * as uuid from "npm:uuid"; console.log(uuid.v4);

Solution

  1. Step 1: Understand uuid package export style

    The uuid package exports v4 as a named export, so it must be imported with curly braces or aliased.
  2. Step 2: Check each import usage

    A: Default import fails--no default export in uuid.
    B: Correct named import with alias and proper call.
    C: Default import lacks v4 property.
    D: Namespace import ok, but missing () logs function, not UUID.
  3. Final Answer:

    import { v4 as uuidv4 } from "npm:uuid"; console.log(uuidv4()); -> Option B
  4. Quick Check:

    Named import with alias for v4 UUID = import { v4 as uuidv4 } from "npm:uuid"; console.log(uuidv4()); [OK]
Hint: Use named import with alias for uuid v4 function [OK]
Common Mistakes:
  • Importing default when package exports named functions
  • Calling v4 without importing it properly
  • Omitting parentheses when calling uuid.v4
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard