Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

package.json и npm init

package.json — файл-паспорт проекта. В нём записаны название, версия, команды для запуска и список библиотек, от которых зависит проект. Его читают npm, Node.js и редакторы кода. Почти любой проект на Node.js начинается с создания этого файла.

Создание

Файл создаётся командой npm init в корне проекта, то есть в папке blog:

npm init -y

Без флага -y npm задаст несколько вопросов (название, версия, описание), с ним — подставит значения по умолчанию. В папке появится файл blog/package.json.

Включаем ES-модули

Курс пишет код с import и export. Чтобы Node.js воспринимал файлы .js как ES-модули, в package.json нужно поле "type": "module". Его удобно задать командой:

npm pkg set type=module

Команда npm pkg set меняет поле в package.json, не открывая редактор.

Что внутри

После этих двух команд файл выглядит примерно так:

{
  "name": "blog",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

Пока вам важны три поля, остальные можно оставить как есть.

ПолеЗачем
nameНазвание проекта: строчные буквы, без пробелов
typemodule — файлы .js являются ES-модулями
scriptsКоманды проекта, их запускают через npm run

Позже, при установке библиотек, npm сам добавит поля dependencies и devDependencies — о них отдельный урок.

Проверка

Создайте файл app.js и выведите название проекта, прочитав package.json как JSON-модуль:

// app.js
import pkg from './package.json' with { type: 'json' };
 
console.log(pkg.name, pkg.version);

Команда node app.js выведет blog 1.0.0. Запись with { type: 'json' } сообщает Node.js, что подключается не код, а JSON.

Частая ошибка

package.json — это строгий JSON, а не объект JavaScript. Комментарии, одинарные кавычки и запятая после последнего элемента в нём запрещены:

{
  "name": "blog",
  "type": "module"
}

Если оставить лишнюю запятую, npm и Node.js откажутся читать файл с ошибкой JSON.parse или EJSONPARSE. Проверяйте файл после ручной правки или меняйте поля командой npm pkg set.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.