У меня есть приложение create-react-app, и я перевожу файлы с jsx на typescript. Например, один файл называется /code/app_react/src/common/Action.jsx, и я переименовал его в /code/app_react/src/common/Action.tsx. Я внес необходимые изменения, чтобы успешно преобразовать его в tsx, но получаю сообщение об ошибке, связанное с изменением имени:
./src/common/Action.jsx Error: ENOENT: no such file or directory, open '/code/src/common/Action.jsx'
Файл, импортирующий этот файл, является файлом jsx, но теперь я импортирую в него файл tsx.
Это приложение CRA, так есть ли правильный способ устранить эту ошибку?
РЕШЕНИЕ:
Мне пришлось удалить их из репозитория git, используя команду git rm, вот так:
git rm /code/src/common/Action.jsx
Как только я это сделал, он удалил jsx из зафиксированных файлов, а затем я смог использовать новые tsx файлы.
Да, это отлично работает, когда расширение jsx
У меня тоже есть эта проблема. Я импортирую файл без расширения, и после изменения расширения я всегда получаю ENOENT и должен перезапустить сервер разработки. Очень расстраивает, так как этот скрипт очень медленно запускается. Я попытаюсь импортировать с явным расширением после переименования и посмотрю, решит ли это проблему.
@thehme Вы нашли решение этой проблемы?
да, мне пришлось бежать git rm /code/src/common/Action.jsx
Привет, пожалуйста, не помещайте решение в вопрос. Вместо этого дайте ответ. @thehme





Возможно, вы не импортировали файл. Вам нужно импортировать файл, чтобы использовать его.
import Action from '/code/app_react/src/common/Action.tsx';
Также добавьте это в свой webpack.config.js.
resolve: {
extensions: [".ts", ".tsx", ".js", ".jsx"]
},
Вы готовы идти!
В приложении, созданном с помощью webpack.config.js, нет create-react-app. Если вы не извлечете или не используете react-rewire или какой-либо подобный инструмент.
У меня была эта проблема (хотя я переименовал js в jsx, а не jsx в tsx), и решение, добавленное к вопросу (запуск git rm в исходном файле), у меня не сработало.
Что сработало, было предложено эта ветка r/reactjs Reddit: удаление и переустановка node_modules:
rm -rf node_modules && npm i
У меня была такая же проблема, не нужно удалять node_modules или удалять целевой файл, вам просто нужно убить процесс узла.
Если вы на windows:
nodeЕсли вы на linux:
pkill node и т.д.После того, как я убил процесс node и снова запустил npm start, он находит целевой файл.
Убил мой запущенный процесс пряжи, убил vscode, перезапустил оба, и он работает
как убить процесс пряжи? Есть ли какая-нибудь команда для этого? Находка для убунту
Простой перезапуск сервера работает...
Спасибо! Это сработало для меня. После перезагрузки кода VS он отобразил файл tsconfig.json, и проблемы были решены.
Я работал с редуксом, а потом наткнулся на эту ошибку!
Я попытался убить узел, удалить модули узла, перезагрузить ноутбук, но он все равно выдавал ту же ошибку, а позже я начал отлаживать index.js.
Я прокомментировал каждую строку и начал раскомментировать сверху, чтобы увидеть, где код ломается, а затем заметил
I had not installed
redux
I had only installed react-redux
Просто перезапустите сервер npm, он автоматически обнаружит файл машинописного текста и внесет коррективы.
У меня была такая же проблема с преобразованием .jsx в .tsx. Если вы используете Parcel для создания своего приложения, удалите папку .cache. Вот где Parcel кэширует файлы сборки. Это исправило это для меня.
Это происходит из-за предустановленного кеша. Простым решением было бы перезапустить ваше приложение nodejs и реагировать.
В Linux
$ pkill node
$ killall node
$ kill -9 <pid>
В Windows
C:\>taskkill /im node.exe
C:\>taskkill /f /im node.exe
C:\>taskkill /pid <PID of node>
В MacOS
$sudo killall -9 node
А затем снова запустите приложение React.
npm start
Нам действительно нужно перезапускать react-scripts каждый раз, когда мы удаляем или перемещаем файл? Я устал ждать 1 минуту, пока react-scripts загрузится и скомпилирует мой проект :/
Не обязательно каждый раз, но если у вас проблемы с кешем, иногда может помочь перезапуск и аннулирование кеша.
перезапуск сервера решил мою проблему, так просто
Я вручную удалил папку node_modules и переустановил их, запустив npm i, и трюк у меня сработал.
Простой перезапуск сервера работает.
Например: NPM RUN DEV или любой стартовый скрипт у меня работал.
ты файл импортировал?
import Action from '/code/app_react/src/common/Action.tsx'