Ты структурируешь проект на Node с помощью package.json, модулей ES, зависимостей npm и скриптов.
Открыть этот урок в KodokonНастоящий проект не помещается в один файл: его разбивают на модули - файлы, которые экспортируют то, что предлагают, и импортируют то, что им нужно. Синтаксис import / export ты уже знаешь по направлению JavaScript; посмотрим, как его включить в Node. Всё начинается с package.json - удостоверения личности твоего проекта: файла в формате JSON, который описывает его имя, версию и настройки. Чтобы его создать, перейди в пустую папку и выполни npm init -y (опция -y принимает все ответы по умолчанию). Затем добавь строку "type": "module": она сообщает Node, что твои файлы .js используют модули ES.
{
"name": "my-project",
"version": "1.0.0",
"type": "module",
"scripts": {
"start": "node main.js",
"dev": "node --watch main.js"
}
}Создадим в этой папке два файла: math.js экспортирует функцию, main.js её импортирует. Особенность, характерная именно для Node: импорт локального файла должен начинаться с ./ и заканчиваться расширением .js. И то и другое обязательно, в отличие от того, что допускают некоторые веб-инструменты.
// math.js
export function add(a, b) {
return a + b;
}
// main.js
import { add } from "./math.js";
console.log(add(2, 3));Главная сила npm - это его всемирная библиотека пакетов: код, написанный другими и готовый к использованию. Команда npm install скачивает пакет в папку node_modules твоего проекта и добавляет его в раздел dependencies файла package.json - список пакетов, которые нужны проекту для работы. Файл package-lock.json, создаваемый автоматически, записывает точные установленные версии, чтобы у всех получалось одно и то же. Попробуем на chalk - пакете, который раскрашивает текст, выводимый в терминал.
npm install chalkПоследний столп: скрипты npm - сокращения для команд, объявленные в разделе scripts файла package.json. npm run dev выполняет команду, сохранённую под именем dev, какой бы длинной ни была настоящая команда. Наш скрипт dev использует node --watch - опцию, которая автоматически перезапускает программу при каждом изменении файла: очень удобно во время разработки.
npm run start
npm run dev