NodeJs при импорте файлов в приложение Create React

Я знаю, что NodeJS важен при использовании npm для загрузки модулей, но зависит ли от него реакция? Например, у меня есть приложение для реагирования, созданное из приложения create-реагировать, и у меня есть эта часть:

import ReactDOM from 'react-dom';
import './index.css';

Используется ли nodeJs для настройки путей в файлах или это делает только компилятор babel?

Если да, то настроен ли Babel для просмотра файлов node_modules, как это делает NodeJs?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
420
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Babel не знает о модулях. Сборщик (Webpack в приложении create-react-app) отвечает за обработку импорта модулей.

Webpack резольвер работает аналогично распознавателю узлов в отношении node_modules, это может быть настроен.

Значит, nodeJs полезен только для модулей npm?

user10803305 14.02.2019 09:20

Я не уверен, что ты имеешь в виду. Это вообще полезно. Webpack — это инструмент Node. Вы не сможете использовать инструменты, написанные на JS, из командной строки без Node. React не зависит от Node. Инструменты сборки делают.

Estus Flask 14.02.2019 09:26

Я имею в виду, что Nodejs полезен только из командной строки, например, с помощью загрузки пакетов npm.

user10803305 14.02.2019 09:34

Да, это полезно для командной строки, но командная строка используется для многих вещей, например для создания приложения React. Когда вы запускаете приложение с помощью npm run start, оно запускает Node. Вы можете посмотреть, что именно делает CRA, удалив проект с помощью npm run eject или проверив внутренние компоненты CRA, github.com/facebook/create-react-app/tree/master/packages/… . По сути, это шаблон Webpack+Babel+Jest, все эти инструменты используют Node.

Estus Flask 14.02.2019 09:48

«Это в основном шаблон Webpack + Babel + Jest, все эти инструменты используют Node», вы имеете в виду, что Webpack + Babel + Jest ИМЕЮТ инструменты, которые зависят от Node, а не сами Webpack + Babel + Jest зависят от Node, верно? И последнее: при загрузке из пакетов npm, таких как redux, npm сохраняет их в C:\Users\user\AppData\Local\Microsoft\TypeScript\. Как webpack знает это местоположение?

user10803305 14.02.2019 10:04

Нет, это инструменты, которые зависят от Node (точнее, Webpack и Jest — это такие инструменты, а Babel просто используется Webpack). Вы устанавливаете пакеты npm в каталог проекта, в котором есть package.json. И запустите Webpack (npm run start) из этого каталога. Таким образом, он обращается к модулям node_modules, существующим в этом каталоге. Если вы запустите npm run start вне каталога проекта, он завершится с ошибкой.

Estus Flask 14.02.2019 10:10

Итак, Webpack и Jest не могут работать без Nodejs? C:\Users\user\AppData\Local\Microsoft\TypeScript\ находится за пределами каталога моего проекта, где я запускаю команду npm run start.

user10803305 14.02.2019 10:17

Да, они не могут. Почему вы зашли в AppData\Local\Microsoft\TypeScript\ ? Это для внутренних вещей TS. Я бы не ожидал, что он запустит ваше приложение при нормальных обстоятельствах. Я проверил это локально, и у него есть свой package.json. Это означает, что когда npm run start запускается в этом каталоге, он будет проверять раздел docs.npmjs.com/files/package.json#scripts на наличие скрипта start. Таким образом, он ничего не может знать о вашем проекте CRA, если только вы не установили проект в этот каталог по ошибке. Я бы предложил немного отойти от CRA и проверить, как Node работает с инструментами, например. с помощью простой настройки Webpack.

Estus Flask 14.02.2019 10:27

Хорошо, я проверю это. Что касается пути AppData\Local\Microsoft\TypeScript\, единственное, что я сделал, это запустил npm redux --save и сохранил его в этом месте. Мое приложение работает нормально, но я не понимаю, почему оно его туда поместило

user10803305 14.02.2019 10:29

Многие инструменты CLI чувствительны к текущему рабочему каталогу, то есть к каталогу, из которого вы их запускаете. Он поместил его туда, потому что вы запускаете npm в этом каталоге, и он обновил ближайший package.json, который смог найти. В AppData\Local\Microsoft\TypeScript\ есть package.json. Каталог с package.json считается корнем проекта Node.

Estus Flask 14.02.2019 10:33

Другие вопросы по теме