'response-scripts' не распознается как внутренняя или внешняя команда

92

У меня есть проект maven, в котором клонирован проект JavaScript как подмодуль git. Итак, структура каталогов выглядит примерно так

mavenapp/src/main/javascript/[npm project files]

внутри моего package.json тест выглядит так: "test": "react-scripts test --env=jsdom",

но когда я пытаюсь запустить тест npm, он говорит

'response-scripts' не распознается как внутренняя или внешняя команда,

Что интересно, когда я самостоятельно клонирую проект javascript, я не получаю этой ошибки. Пробовал повторно запустить npm install.

npm version : 5.5.1

node version : 9.3.0

Дж. Смит
источник
хотя я с тех пор работал над этой проблемой, я ценю, что она привлекла немного внимания, и поэтому было бы полезно отметить ответ как правильный ... открытый для предложений сообщества относительно того, чей это будет .
J Smith

Ответы:

78

Это ошибка, связанная с отсутствием файла сценариев реакции в каталоге модулей вашего узла во время установки.

Проверьте, доступна ли зависимость вашего сценария реакции в package.json.

Если недоступно, добавьте вручную через:

npm install response-scripts --save

Йогеш Борад
источник
11
НЕ делайте этого, это может вызвать проблемы с другими проектами ... вам НЕ следует устанавливать глобальные сценарии реагирования, как это. См. Здесь: github.com/facebook/create-react-app/issues/…
Росди Касим
5
@RosdiKasim Прочитав ваш комментарий, я понял свою ошибку. Теперь я изменил команду для конкретного проекта, а не глобально (-g).
Йогеш Борад 01
У меня ничего не меняется, все та же ошибка. Выполнение команды «npm install response-scripts --save» даже в случае успешного выполнения не создает никаких папок для сценариев реакции в папке npm_modules. Я использую Windows10
Giox
@RosdiKasim, судя по вашему комментарию, вы должны следить за концом ветки на Github. Я столкнулся с той же проблемой и исправил ее, выполнив следующие действия stackoverflow.com/a/54403797/8719007 (ответ ниже)
Серж Кишико,
43

Попытался ли ты:

rm -rf node_modules && npm install

В node_modulesпервую очередь, очистка часто помогает исправить множество странных проблем, связанных с пакетами, например, в Node.

Джонни Асмар
источник
2
да, у меня ... без разницы ... На данный момент мне пришлось просто удалить подмодуль и просто вставить его вручную.
J Smith
Хм, вы не видите никаких ошибок в логе npm install? Попробуйте запустить npm install -fи посмотреть, не изменится ли что-нибудь. Это может быть другой пакет, который не устанавливается и блокируется create-react-appот полной установки. Принудительная установка npm с помощью -f, кстати, никогда не является полным решением ... просто шагом по устранению неполадок. Если после запуска что-то изменится, значит, с одним из пакетов что-то не так.
Джонни Асмар
Кроме того, вы можете убедиться, что у вас есть файл по адресу javascript/node_modules/.bin/react-scripts. Если нет, для этого может быть несколько разных причин, включая проблемы с разрешениями, ограничения ОС на создание символических ссылок (все node_moduels/.binэто символическая ссылка, созданная при установке. Также может быть, что у вас не установлены сценарии реакции ... попробуйте работает npm install --save react-scriptsи посмотреть , если это помогает.
Jonny Asmar
1
Переход с MacOS на Windows (Dropbox синхронизировал всю node_modulesпапку) - только удаление папки и повторная установка решили эту проблему
AS
Ага - это то, что делает вышеуказанная команда. Вероятно, ваш симптом был связан с рядом пакетов, которые выполняют процедуры условной установки для каждой ОС. Linux, Mac и Windows имеют довольно много расхождений с множеством фундаментальных зависимостей проекта.
Джонни Асмар
30

Если react-scriptsприсутствует вpackage.json

Если вы видите что-то подобное "react-scripts": "2.1.3"в своем pakage.jsonфайле, просто введите эту команду

npm install

Если react-scriptsнет вpackage.json

Если "react-scripts"в вашем package.jsonфайле нет ничего подобного, возможно, вы его не установили. Для этого введите следующую команду, и все будет готово

npm install react-scripts --save

Хади Мир
источник
1
Что, если он есть в моем package.json, и я тоже его установил, но столкнулся с той же проблемой?
Serob_b
@Serob_b Иногда у меня также возникает такая же проблема: я просто запускаю «npm install», и это решает проблему. или вы всегда можете удалить папку node_modules, набрав в терминале rm "-rf node_modules" и затем запустите "npm install". надеюсь, это поможет
Хади Мир
9

В моей ситуации с моим пакетом узлов возникли некоторые проблемы. Итак, я бегу npm audit fixи исправляю все проблемы

Нгуен Дык Тхань
источник
9

Я столкнулся с той же проблемой. Но запуск команды npm update решил мою проблему.

Мирадж Хандакер
источник
Это было решение. Спасибо.
Дзенис Х.
3

я исправлю эту проблему :-), просто удалите ваш node.js и покажите скрытые файлы

затем перейдите в "C: \ Users \ yourpcname \ AppData \ Roaming \"

затем удалите папки "npm" и "npm-cache"

и установите новую версию node.js.

Сандро Кагара
источник
2
На самом деле это не решение.
Фани Ритвидж,
Этот сработал для меня.
UA
2

response-scripts не распознается, поскольку внутренняя или внешняя команда связана с npm.

Я бы обновил все свои зависимости в моих файлах package.json до последних версий как в основном каталоге, так и в каталоге клиента, если это возможно. Вы можете сделать это, используя звездочку «*» вместо того, чтобы указывать конкретный номер версии в ваших файлах package.json для ваших зависимостей.

Например:

"dependencies": {
    "body-parser": "*",
    "express": "*",
    "mongoose": "*",
    "react": "*",
    "react-dom": "*",
    "react-final-form": "*",
    "react-final-form-listeners": "*",
    "react-mapbox-gl": "*",
    "react-redux": "*",
    "react-responsive-modal": "*",
  }

Затем я бы убедился, что все package-lock.json были удалены, а затем запустил npm install и yarn install как в основном каталоге, так и в каталоге клиента, если это применимо.

Затем вы сможете запустить сборку пряжи, а затем использовать yarn start для запуска приложения.

Ахмедахтар11
источник
Это плохой совет. Использование *номеров версий проблематично, поскольку это может привести к установке разных версий пакетов в разных системах. Используйте заблокированные номера версий и обновляйте их по мере необходимости
Дана Вудман
Да, здесь что-то может пойти не так в производственных целях, но это просто идея для тестирования.
Ahmedakhtar11
2

Столкнулся с той же проблемой, хотя использую пряжу.

У меня сработало следующее:

yarn install 
yarn start
Папа Франциск
источник
1

Для портативных приложений изменить

package.json

следующим образом

"scripts": {
    "start": "node node_modules/.bin/react-scripts start",
    "build": "node node_modules/.bin/react-scripts build",
    "test": "node node_modules/.bin/react-scripts test",
    "eject": "node node_modules/.bin/react-scripts eject"
  }
смамран
источник
0

Я пробовал многие решения этой проблемы, найденные в сети, но в моем случае ничего не работало, кроме переустановки NVM для Windows (которую я использую для управления несколькими версиями узлов). В установщике он обнаруживает установленные версии узлов и спрашивает пользователя, хотят ли они, чтобы NVM контролировал их. Я сказал да, и NVM устранил все проблемы с PATH. В итоге все заработало по-прежнему. У этой проблемы может быть несколько причин, но поврежденный PATH определенно является одной из них, и (повторная) установка NVM исправляет PATH.

Томаш Хюбельбауэр
источник
0

Это довольно старый вопрос, но он может быть полезен для использования в будущем. Удалите папку node_modules и снова запустите npm install. Работал у меня.

Koder90
источник
0

В моем случае я редактировал свои файлы в Linux, где у меня был установлен узел v14.0.5, когда я перезагружался в Windows, где у меня был узел v14.0.3, я получил ту же ошибку. Итак, я обновил версию узла для Windows, и у меня все прошло хорошо.

Сураб
источник
0

Вот как я это исправлю

  1. Проверьте и обновите переменную пути (см. Ниже, как обновить переменную пути)
  2. Удалите node_modules и package-lock.json
  3. бегать npm install
  4. бегать npm run start

если это не сработало, попробуйте установить nodejs и запустить ремонт

или очистить кеш npm npm cache clean --force

Чтобы обновить переменную пути

  1. нажмите клавишу Windows
  2. Ищи Edit the system environmental variable
  3. Нажмите на Environment Variables...
  4. в нижнем разделе системных переменных (будет два раздела)
  5. Выберите Pathимя переменной
  6. Нажмите Edit..
  7. Проверьте, есть ли C:\Program Files\nodejsв списке, если нет, добавьте это
Салман
источник
0

была аналогичная проблема .. Я использовал пряжу, чтобы исправить это. Я заметил, что сценарии реакции не были найдены в моих модулях узлов, поэтому я решил загрузить их с помощью npm, но, похоже, у меня тоже не получается. поэтому я попробовал пряжу (пряжа добавляет скрипты реакции), и это решило кошмар! Надеюсь, это сработает и для вас. Удачных вам отладчиков.

Эммануэль Сева
источник
-1

В моем случае проблема была связана с отсутствием достаточных прав доступа к некоторым файлам, в которые установка пакета response-scripts собиралась писать. Решением было запустить git bash от имени администратора, а затем npm install --save react-scriptsснова запустить .

Адим Виктор
источник
-2

Когда я создаю новый проект с помощью React, для установки модулей React мне нужно запустить «npm install» (PowerShell) из папки ClientApp новых проектов (например, «C: \ Users \ Chris \ source \ repos \ HelloWorld2 \ HelloWorld2 \ ClientApp »). Веб-приложение .NET core с React должно иметь файлы React, установленные в правильном месте, чтобы команды React работали правильно.

Кристофер Аптон
источник