Во многих туториалах, для запуска react приложения используют npm. Зачем? React это просто js библиотека, которую можно подключить с помощью тех же cdn и просто открыть .html в браузере.
Именно с реактом так не получится, если цель написать что-то сложнее Hello world.
Полагаю, с помощью npm start запускают сервер и вешают на порт локалки, так ли это?
npm start это всего-лишь команда в package.json, запускать она может что угодно. В случае с webpack она обычно запускает webpack-dev-server, который слушает какой-нибудь порт на localhost и отдает статику по этому порту. Это локальная замена веб-сервера, для удобной разработки. При сборке для настоящего сервера используют другую команду.
Но опять же, зачем, если файл можно просто открыть в браузере?
Можно, но webpack-dev-server автоматически обновляет страницу при изменении кода (live reload). Плюс при запуске html из файловой системы , ссылки начинающиеся от '/' будут работать от рута файловой системы, а не от url. И вообще будут проблемы со ссылками.
И что если бек на пыхе? Получается будут смешаны файлы пыхы и ноды? Это же куча ненужных файлов
Бэк на пыхе должен быть отдельным проектом, потому что реакт обычно работает с бэкендом через REST API. Это значит, что бэк может быть вообще на другом сервере и в другой стране.
Во многих туториалах так же прописывают различные import-ы различных библиотек. Это относится к реакту или к nodejs-приложению?
import/export это часть языка JavaScript стандартизированная спецификацией EcmaScript. Поэтому эту часть синтаксиса еще называют esm (EcmaScript modules). Стандарт уже реализован в современных браузерах и недавних версиях NodeJS. Но для обспечения совместимости с разными бибилиотеками еще не использующими стандартный import/export нужен сборщик типа webpack.