freeCodeCamp/curriculum/challenges/arabic/05-back-end-development-and.../managing-packages-with-npm/expand-your-project-with-ex...

2.1 KiB

id title challengeType forumTopicId dashedName
587d7fb4367417b2b2512c00 Expand Your Project with External Packages from npm 2 301527 expand-your-project-with-external-packages-from-npm

--description--

One of the biggest reasons to use a package manager, is their powerful dependency management. Instead of manually having to make sure that you get all dependencies whenever you set up a project on a new computer, npm automatically installs everything for you. But how can npm know exactly what your project needs? Meet the dependencies section of your package.json file.

In this section, packages your project requires are stored using the following format:

"dependencies": {
  "package-name": "version",
  "express": "4.14.0"
}

--instructions--

Add version "1.1.0" of the @freecodecamp/example package to the dependencies field of your package.json file.

Note: @freecodecamp/example is a faux package used as a learning tool.

--hints--

"dependencies" should include "@freecodecamp/example".

(getUserInput) =>
  $.get(getUserInput('url') + '/_api/package.json').then(
    (data) => {
      var packJson = JSON.parse(data);
      assert.property(
        packJson.dependencies,
        '@freecodecamp/example',
        '"dependencies" does not include "@freecodecamp/example"'
      );
    },
    (xhr) => {
      throw new Error(xhr.responseText);
    }
  );

"@freecodecamp/example" version should be "1.1.0".

(getUserInput) =>
  $.get(getUserInput('url') + '/_api/package.json').then(
    (data) => {
      var packJson = JSON.parse(data);
      assert.match(
        packJson.dependencies["@freecodecamp/example"],
        /^[\^\~]?1\.1\.0/,
        'Wrong version of "@freecodecamp/example" installed. It should be 1.1.0'
      );
    },
    (xhr) => {
      throw new Error(xhr.responseText);
    }
  );

--solutions--

/**
  Backend challenges don't need solutions, 
  because they would need to be tested against a full working project. 
  Please check our contributing guidelines to learn more.
*/