Я знаю, что NodeJS важен при использовании npm для загрузки модулей, но зависит ли от него реакция? Например, у меня есть приложение для реагирования, созданное из приложения create-реагировать, и у меня есть эта часть:
import ReactDOM from 'react-dom';
import './index.css';
Используется ли nodeJs для настройки путей в файлах или это делает только компилятор babel?
Если да, то настроен ли Babel для просмотра файлов node_modules, как это делает NodeJs?





Babel не знает о модулях. Сборщик (Webpack в приложении create-react-app) отвечает за обработку импорта модулей.
Webpack резольвер работает аналогично распознавателю узлов в отношении node_modules, это может быть настроен.
Я не уверен, что ты имеешь в виду. Это вообще полезно. Webpack — это инструмент Node. Вы не сможете использовать инструменты, написанные на JS, из командной строки без Node. React не зависит от Node. Инструменты сборки делают.
Я имею в виду, что Nodejs полезен только из командной строки, например, с помощью загрузки пакетов npm.
Да, это полезно для командной строки, но командная строка используется для многих вещей, например для создания приложения React. Когда вы запускаете приложение с помощью npm run start, оно запускает Node. Вы можете посмотреть, что именно делает CRA, удалив проект с помощью npm run eject или проверив внутренние компоненты CRA, github.com/facebook/create-react-app/tree/master/packages/… . По сути, это шаблон Webpack+Babel+Jest, все эти инструменты используют Node.
«Это в основном шаблон Webpack + Babel + Jest, все эти инструменты используют Node», вы имеете в виду, что Webpack + Babel + Jest ИМЕЮТ инструменты, которые зависят от Node, а не сами Webpack + Babel + Jest зависят от Node, верно? И последнее: при загрузке из пакетов npm, таких как redux, npm сохраняет их в C:\Users\user\AppData\Local\Microsoft\TypeScript\. Как webpack знает это местоположение?
Нет, это инструменты, которые зависят от Node (точнее, Webpack и Jest — это такие инструменты, а Babel просто используется Webpack). Вы устанавливаете пакеты npm в каталог проекта, в котором есть package.json. И запустите Webpack (npm run start) из этого каталога. Таким образом, он обращается к модулям node_modules, существующим в этом каталоге. Если вы запустите npm run start вне каталога проекта, он завершится с ошибкой.
Итак, Webpack и Jest не могут работать без Nodejs? C:\Users\user\AppData\Local\Microsoft\TypeScript\ находится за пределами каталога моего проекта, где я запускаю команду npm run start.
Да, они не могут. Почему вы зашли в AppData\Local\Microsoft\TypeScript\ ? Это для внутренних вещей TS. Я бы не ожидал, что он запустит ваше приложение при нормальных обстоятельствах. Я проверил это локально, и у него есть свой package.json. Это означает, что когда npm run start запускается в этом каталоге, он будет проверять раздел docs.npmjs.com/files/package.json#scripts на наличие скрипта start. Таким образом, он ничего не может знать о вашем проекте CRA, если только вы не установили проект в этот каталог по ошибке. Я бы предложил немного отойти от CRA и проверить, как Node работает с инструментами, например. с помощью простой настройки Webpack.
Хорошо, я проверю это. Что касается пути AppData\Local\Microsoft\TypeScript\, единственное, что я сделал, это запустил npm redux --save и сохранил его в этом месте. Мое приложение работает нормально, но я не понимаю, почему оно его туда поместило
Многие инструменты CLI чувствительны к текущему рабочему каталогу, то есть к каталогу, из которого вы их запускаете. Он поместил его туда, потому что вы запускаете npm в этом каталоге, и он обновил ближайший package.json, который смог найти. В AppData\Local\Microsoft\TypeScript\ есть package.json. Каталог с package.json считается корнем проекта Node.
Значит, nodeJs полезен только для модулей npm?