Saved searches
Use saved searches to filter your results more quickly
Cancel Create saved search
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ошибка npm: command not found при попытке запуска симулятора #1
falkona opened this issue Dec 2, 2019 · 11 comments
Ошибка npm: command not found при попытке запуска симулятора #1
falkona opened this issue Dec 2, 2019 · 11 comments
Comments
falkona commented Dec 2, 2019
В папку gate-simulator добавила файлы Dockerfile и docker-compose.yml (их скопировала из д.з. по докеру).
Выполнила команду docker-compose up -d —build
далее
$ docker-compose up -d --build Creating network "gate-simulator_default" with the default driver Building node-app Step 1/6 : FROM node:8.16.2-alpine ---> 26881633664e Step 2/6 : WORKDIR /opt/app ---> Using cache ---> a6b3215da7d8 Step 3/6 : COPY . . ---> Using cache ---> 9f6ec9bc76de Step 4/6 : RUN npm install ---> Using cache ---> a8acfd00af5e Step 5/6 : CMD ["npm", "start"] ---> Using cache ---> 7b7f2eadba5a Step 6/6 : EXPOSE 9999 ---> Using cache ---> be2770099f64 Successfully built be2770099f64 Successfully tagged node-app:1.0 Creating gate-simulator_node-app_1 . done
После этого выполняю команду npm start и получаю ошибку
$ npm start bash: npm: command not found
при этом образ создан, контейнер запущен
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE node-app 1.0 be2770099f64 59 seconds ago 71.5MB d3f7c75592fd 2 minutes ago 71.5MB c10dc75dc916 50 minutes ago 75.1MB postgres latest d5177924aea0 5 days ago 394MB node 8 c0eda5b3a935 9 days ago 895MB mysql latest d435eee2caa5 9 days ago 456MB node 8.16.2-alpine 26881633664e 12 days ago 67MB postgres 12.0-alpine 5b681acb1cfc 5 weeks ago 72.8MB
$ docker-compose ps ▒▒▒⥬▒ ▒▒ 㤠▒▒▒▒ ▒▒▒▒ 㪠▒▒▒▒▒ ▒▒▒▒. Name Command State Ports ------------------------------------------------------------------------------------------- gate-simulator_node-app_1 docker-entrypoint.sh npm start Up 0.0.0.0:9999->9999/tcp
The text was updated successfully, but these errors were encountered:
Owner Author
falkona commented Dec 2, 2019 •
$ docker-compose exec node-app npm start > gate-simulator@1.0.0 prestart /opt/app > npm i npm WARN gate-simulator@1.0.0 No description npm WARN gate-simulator@1.0.0 No repository field. npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.2 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.2: wanted (current: ) audited 268 packages in 2.562s found 0 vulnerabilities > gate-simulator@1.0.0 start /opt/app > nodemon app.js [nodemon] 2.0.0 [nodemon] to restart at any time, enter `rs` [nodemon] watching dir(s): *.* [nodemon] watching extensions: js,mjs,json [nodemon] starting `node app.js` [ < number: '4444 4444 4444 4441', status: 'APPROVED' >, < number: '4444 4444 4444 4442', status: 'DECLINED' >] events.js:183 throw er; // Unhandled 'error' event ^ Error: listen EADDRINUSE . 9999 at Server.setupListenHandle [as _listen2] (net.js:1360:14) at listenInCluster (net.js:1401:12) at Server.listen (net.js:1485:7) at Function.listen (/opt/app/node_modules/express/lib/application.js:618:24) at Object. (/opt/app/app.js:28:8) at Module._compile (module.js:653:30) at Object.Module._extensions..js (module.js:664:10) at Module.load (module.js:566:32) at tryModuleLoad (module.js:506:12) at Function.Module._load (module.js:498:3) [nodemon] app crashed - waiting for file changes before starting.
проверила — 9999 порт свободен
C:\Users\skype>netstat -a Активные подключения Имя Локальный адрес Внешний адрес Состояние TCP 0.0.0.0:135 DESKTOP-FB81I61:0 LISTENING TCP 0.0.0.0:445 DESKTOP-FB81I61:0 LISTENING TCP 0.0.0.0:3306 DESKTOP-FB81I61:0 LISTENING TCP 0.0.0.0:5040 DESKTOP-FB81I61:0 LISTENING TCP 0.0.0.0:5357 DESKTOP-FB81I61:0 LISTENING TCP 0.0.0.0:7680 DESKTOP-FB81I61:0 LISTENING TCP 0.0.0.0:33060 DESKTOP-FB81I61:0 LISTENING TCP 0.0.0.0:49664 DESKTOP-FB81I61:0 LISTENING TCP 0.0.0.0:49665 DESKTOP-FB81I61:0 LISTENING TCP 0.0.0.0:49666 DESKTOP-FB81I61:0 LISTENING TCP 0.0.0.0:49668 DESKTOP-FB81I61:0 LISTENING TCP 0.0.0.0:49669 DESKTOP-FB81I61:0 LISTENING TCP 0.0.0.0:49696 DESKTOP-FB81I61:0 LISTENING TCP 127.0.0.1:49673 DESKTOP-FB81I61:49674 ESTABLISHED TCP 127.0.0.1:49674 DESKTOP-FB81I61:49673 ESTABLISHED TCP 127.0.0.1:49690 DESKTOP-FB81I61:0 LISTENING TCP 192.168.0.104:139 DESKTOP-FB81I61:0 LISTENING TCP 192.168.0.104:49676 51.105.249.228:https ESTABLISHED TCP 192.168.0.104:49732 51.105.249.228:https ESTABLISHED
ArRomanov commented Dec 2, 2019
Сначала пытался запустить на своем компьютере — были ошибки при запуске контейнера с приложением, потом все перезагрузил, запустил все заново с самого начала — заработало.
Потом попробовал все в «play-with-docker»:

- git clone https://github.com/falkona/qa-diploma.git
- cd qa-diploma/
- cd artifacts/gate-simulator/
- docker-compose up -d —build
- docker-compose logs -f
Результат:
Попробуйте еще раз, может были перебои с доступами к репозиториям зависимостей. Если не получится, то пишите — будем вместе разбираться.
ArRomanov commented Dec 2, 2019
У вас же ошибка с портом. Я что-то невнимательно посмотрел. Тогда варианты такие: перезагружать компьютер, проверять, что нет работающих контейнеров docker ps , потом запускать docker-compose ваше приложение
falkona closed this as completed Dec 3, 2019
falkona reopened this Dec 3, 2019
Contributor
coursar commented Dec 3, 2019
Так, вы же уже своим Dockerfile сделали так, что симулятор стартует в контейнере, зачем вы его повторно пытаетесь запускать? Ходите на порт 9999 и всё.
Owner Author
falkona commented Dec 3, 2019 •
- Запускаю контейнеры Mysql и Node.js
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3f2f687c1999 node-app:1.0 "docker-entrypoint.s…" 11 seconds ago Up 11 seconds 0.0.0.0:9999->9999/tcp gate-simulator_node-app_1 b466e945915f mysql:latest "docker-entrypoint.s…" 46 seconds ago Up 45 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql-container
Лог контейнера Node.js
$ docker-compose logs Attaching to gate-simulator_node-app_1 node-app_1 | node-app_1 | > gate-simulator@1.0.0 prestart /opt/app node-app_1 | > npm i node-app_1 | node-app_1 | npm WARN gate-simulator@1.0.0 No description node-app_1 | npm WARN gate-simulator@1.0.0 No repository field. node-app_1 | npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.2 (node_modules/fsevents): node-app_1 | npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.2: wanted (current: ) node-app_1 | node-app_1 | audited 268 packages in 2.264s node-app_1 | found 0 vulnerabilities node-app_1 | node-app_1 | node-app_1 | > gate-simulator@1.0.0 start /opt/app node-app_1 | > nodemon app.js node-app_1 | node-app_1 | [nodemon] 2.0.0 node-app_1 | [nodemon] to restart at any time, enter `rs` node-app_1 | [nodemon] watching dir(s): *.* node-app_1 | [nodemon] watching extensions: js,mjs,json node-app_1 | [nodemon] starting `node app.js` node-app_1 | [ < number: '4444 4444 4444 4441', status: 'APPROVED' >, node-app_1 | < number: '4444 4444 4444 4442', status: 'DECLINED' >]

После этого запускаю SUT, выбираю «Купить в кредит», заполняю поля, указываю номер «успешной» карты
Ожидаемый результат: нотификация об успехе операции
Фактический результат: на запрос POST http://localhost:8080/api/v1/credit
приходит ответ
Я думала, это связано с тем, что симулятор не стартовал. А если нет, то что тогда?

Contributor
coursar commented Dec 3, 2019
Нет, проблема в том, что вы запутались с портами. В текущем состоянии — симулятор запускается на порту 9999 в контейнере, а вы маппите порты другие:
version: '3.7' services: node-app: build: . image: node-app:1.0 ports: - '9990:9990'
На порту 9990 в контейнере никого нет.
Отправьте приглашение в коллабораторы на coursar. Я вам пришлю PR.
Owner Author
falkona commented Dec 3, 2019
@coursar
Смержила, перезапустила контейнеры, перезапустила SUT, но ошибка 500 все равно осталась
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a4c896426a27 node-app:1.0 "docker-entrypoint.s…" About a minute ago Up About a minute 9990/tcp, 0.0.0.0:9990->9999/tcp qa-diploma_node-app_1 6861e101bf82 mysql:latest "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, 33060/tcp mysql-container
$ docker-compose logs Attaching to qa-diploma_node-app_1, mysql-container node-app_1 | node-app_1 | > gate-simulator@1.0.0 prestart /opt/app node-app_1 | > npm i node-app_1 | node-app_1 | npm WARN gate-simulator@1.0.0 No description node-app_1 | npm WARN gate-simulator@1.0.0 No repository field. node-app_1 | npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.2 (node_modules/fsevents): node-app_1 | npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.2: wanted (current: ) node-app_1 | node-app_1 | audited 268 packages in 2.43s node-app_1 | found 0 vulnerabilities node-app_1 | node-app_1 | node-app_1 | > gate-simulator@1.0.0 start /opt/app node-app_1 | > nodemon app.js node-app_1 | node-app_1 | [nodemon] 2.0.0 node-app_1 | [nodemon] to restart at any time, enter `rs` node-app_1 | [nodemon] watching dir(s): *.* node-app_1 | [nodemon] watching extensions: js,mjs,json node-app_1 | [nodemon] starting `node app.js` node-app_1 | [ < number: '4444 4444 4444 4441', status: 'APPROVED' >, node-app_1 | < number: '4444 4444 4444 4442', status: 'DECLINED' >] mysql-container | 2019-12-03 08:05:51+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.18-1debian9 started. mysql-container | 2019-12-03 08:05:52+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' mysql-container | 2019-12-03 08:05:52+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.18-1debian9 started. mysql-container | 2019-12-03T08:05:52.973347Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release. mysql-container | 2019-12-03T08:05:52.975513Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.18) starting as process 1 mysql-container | 2019-12-03T08:05:53.690819Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. mysql-container | 2019-12-03T08:05:53.698919Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory. mysql-container | 2019-12-03T08:05:53.744054Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.18' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL. mysql-container | 2019-12-03T08:05:53.827388Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060
Перезапустила SUT, выполняю те же действия
Запрос — ответ
Request URL: http://localhost:8080/api/v1/pay Request Method: POST
ArRomanov commented Dec 3, 2019 •
Вот здесь должно быть 9999 . Это конфигурация указывает, какой порт слушает контейнер. А по умолчанию node приложение стартует на 9999, значит контейнер должен принимать соединения там же. на 9990 должно были быть изменены левый из двух портов для node контейнера в docker-compose.yml и порты в application.properties для платежных шлюзов, лишь для исключения проблем с 9999 на вашем компьютере.
Сейчас я запустил проект с такой конфигурацией:
Форма отправилась, ответ от сервиса 200 .
Не забывайте проверять запущенные контейнеры перед запуском новых, чтобы избежать проблемы занятых портов.
Owner Author
falkona commented Dec 4, 2019
@ArRomanov сейчас в файлах репозитория именно эти порты
Проверяю, что контейнеров нет
Запускаю docker-compose, вижу что контейнеры запущены, но запрос payment все равно возвращает ошибку 500
skype@DESKTOP-FB81I61 MINGW64 ~/OneDrive/Рабочий стол/qa-diploma (master) $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES skype@DESKTOP-FB81I61 MINGW64 ~/OneDrive/Рабочий стол/qa-diploma (master) $ docker-compose up -d --build Creating network "qa-diploma_default" with the default driver Building node-app Step 1/6 : FROM node:8.16.2-alpine ---> 26881633664e Step 2/6 : WORKDIR /opt/app ---> Using cache ---> c3f76ab5332f Step 3/6 : COPY . . ---> Using cache ---> c5861f8852c5 Step 4/6 : RUN npm install ---> Using cache ---> 21a7336d46a5 Step 5/6 : CMD ["npm", "start"] ---> Using cache ---> b7fd20bb650e Step 6/6 : EXPOSE 9999 ---> Using cache ---> 475dcbe8c6de Successfully built 475dcbe8c6de Successfully tagged node-app:1.0 Creating qa-diploma_node-app_1 . done Creating mysql-container . done skype@DESKTOP-FB81I61 MINGW64 ~/OneDrive/Рабочий стол/qa-diploma (master) $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c490f4632588 mysql:latest "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql-container 39ca3c3711be node-app:1.0 "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 0.0.0.0:9990->9999/tcp qa-diploma_node-app_1 skype@DESKTOP-FB81I61 MINGW64 ~/OneDrive/Рабочий стол/qa-diploma (master) $ docker-compose logs Attaching to mysql-container, qa-diploma_node-app_1 mysql-container | 2019-12-04 11:23:28+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.18-1debian9 started. mysql-container | 2019-12-04 11:23:28+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' mysql-container | 2019-12-04 11:23:28+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.18-1debian9 started. mysql-container | 2019-12-04 11:23:28+00:00 [Note] [Entrypoint]: Initializing database files mysql-container | 2019-12-04T11:23:28.655900Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release. mysql-container | 2019-12-04T11:23:28.656889Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.18) initializing of server in progress as process 45 mysql-container | 2019-12-04T11:23:28.675679Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive mysql-container | 2019-12-04T11:23:35.747300Z 5 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option. mysql-container | 2019-12-04 11:23:38+00:00 [Note] [Entrypoint]: Database files initialized mysql-container | 2019-12-04 11:23:38+00:00 [Note] [Entrypoint]: Starting temporary server mysql-container | 2019-12-04T11:23:39.179331Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release. mysql-container | 2019-12-04T11:23:39.179705Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.18) starting as process 94 mysql-container | 2019-12-04T11:23:39.187917Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive mysql-container | 2019-12-04T11:23:40.261505Z 0 [Warning] [MY-000054] [Server] World-writable config file './auto.cnf' is ignored. mysql-container | 2019-12-04T11:23:40.262577Z 0 [Warning] [MY-010107] [Server] World-writable config file './auto.cnf' has been removed. mysql-container | 2019-12-04T11:23:40.263436Z 0 [Warning] [MY-010075] [Server] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 85b23555-1688-11ea-8cbc-0242ac180003. mysql-container | 2019-12-04T11:23:40.290351Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. mysql-container | 2019-12-04T11:23:40.296558Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory. mysql-container | 2019-12-04T11:23:40.329537Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.18' socket: '/var/run/mysqld/mysqld.sock' port: 0 MySQL Community Server - GPL. mysql-container | 2019-12-04 11:23:40+00:00 [Note] [Entrypoint]: Temporary server started. mysql-container | 2019-12-04T11:23:40.561098Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' mysql-container | Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it. mysql-container | Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it. mysql-container | Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it. mysql-container | Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it. mysql-container | 2019-12-04 11:23:44+00:00 [Note] [Entrypoint]: GENERATED ROOT PASSWORD: oi8mohzuew4hongol2da9sheeZ8el4ch mysql-container | 2019-12-04 11:23:44+00:00 [Note] [Entrypoint]: Creating database app mysql-container | 2019-12-04 11:23:44+00:00 [Note] [Entrypoint]: Creating user app mysql-container | 2019-12-04 11:23:44+00:00 [Note] [Entrypoint]: Giving user app access to schema app mysql-container | mysql-container | 2019-12-04 11:23:44+00:00 [Note] [Entrypoint]: Stopping temporary server mysql-container | 2019-12-04T11:23:44.458120Z 14 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.18). mysql-container | 2019-12-04T11:23:45.197605Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.18) MySQL Community Server - GPL. mysql-container | 2019-12-04 11:23:45+00:00 [Note] [Entrypoint]: Temporary server stopped mysql-container | mysql-container | 2019-12-04 11:23:45+00:00 [Note] [Entrypoint]: MySQL init process done. Ready for start up. mysql-container | mysql-container | 2019-12-04T11:23:45.746243Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release. mysql-container | 2019-12-04T11:23:45.746630Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.18) starting as process 1 mysql-container | 2019-12-04T11:23:45.754320Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive mysql-container | 2019-12-04T11:23:46.534047Z 0 [Warning] [MY-000054] [Server] World-writable config file './auto.cnf' is ignored. mysql-container | 2019-12-04T11:23:46.535487Z 0 [Warning] [MY-010107] [Server] World-writable config file './auto.cnf' has been removed. mysql-container | 2019-12-04T11:23:46.536371Z 0 [Warning] [MY-010075] [Server] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 896f625f-1688-11ea-a17d-0242ac180003. mysql-container | 2019-12-04T11:23:46.638957Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. mysql-container | 2019-12-04T11:23:46.645523Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory. mysql-container | 2019-12-04T11:23:46.678162Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.18' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL. mysql-container | 2019-12-04T11:23:46.724956Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060 node-app_1 | node-app_1 | > gate-simulator@1.0.0 prestart /opt/app node-app_1 | > npm i node-app_1 | node-app_1 | npm WARN gate-simulator@1.0.0 No description node-app_1 | npm WARN gate-simulator@1.0.0 No repository field. node-app_1 | npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.2 (node_modules/fsevents): node-app_1 | npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.2: wanted (current: ) node-app_1 | node-app_1 | audited 268 packages in 2.783s node-app_1 | found 0 vulnerabilities node-app_1 | node-app_1 | node-app_1 | > gate-simulator@1.0.0 start /opt/app node-app_1 | > nodemon app.js node-app_1 | node-app_1 | [nodemon] 2.0.0 node-app_1 | [nodemon] to restart at any time, enter `rs` node-app_1 | [nodemon] watching dir(s): *.* node-app_1 | [nodemon] watching extensions: js,mjs,json node-app_1 | [nodemon] starting `node app.js` node-app_1 | [ < number: '4444 4444 4444 4441', status: 'APPROVED' >, node-app_1 | < number: '4444 4444 4444 4442', status: 'DECLINED' >]
Request URL: http://localhost:8080/api/v1/pay Request Method: POST
Также пробовала поменять все порты на 9999, но эффект тот же самый
Почему выдает ошибку bash: npm: command not found?
Я установил пакет Laravel Breeze командой php artisan breeze:install . После этого мне выдало Breeze scaffolding installed successfully.
Please execute the «npm install && npm run dev» command to build your assets. Я ввожу npm install и мне пишет ошибку bash: «npm: command not found» . Почему это происходит, и как это можно решить?
- Вопрос задан более года назад
- 2244 просмотра
1 комментарий
Простой 1 комментарий
OSX. После перезагрузки системы npm command not found. Почему?
Установил Node, npm работал. Тут пришлось рестартнуть комп, открываю терминал, ввожу npm и вижу «command not found».
Если пробовать запускать из-под bash, все работает. Помогите разобраться, до сих пор не могу понять, как правильно все установить, чтобы работало как надо. Что я не так делаю?

UPD. С nvm была та же история и небольшое расследование показало, что если, в соответствии с инструкцией, выполнить
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
то nvm и npm начинают работать. Ну наверно оно и логично, ведь устанавливался Node через nvm. Значит, проблема в том, что где-то сбрасываются пути? Я не особо пока понимаю как это работает.
- Вопрос задан более трёх лет назад
- 1469 просмотров
Bash. Как исправить не найденный npm? 1 мин для чтения


Добавить в избранное
Главное меню » Ubuntu » Bash. Как исправить не найденный npm?
Если вы работаете с JavaScript и Node.js, вы уже знакомы с npm. Термин npm относится к двум вещам. Подробнее в официальной документации Node.js.
- Интернет-репозиторий для публикации проектов Node.js с открытым исходным кодом.
- Утилита командной строки для управления пакетами Node.js, версиями и зависимостями.
Всякий раз, когда вы устанавливаете Node.js, он по умолчанию устанавливает менеджер пакетов npm . Однако по какой-то причине вы можете столкнуться с проблемой, что bash не распознает npm как действительную команду.
В этом руководстве по устранению неполадок мы рассмотрим возможные шаги, которые можно предпринять для устранения ошибки. Мы будем использовать Ubuntu для демонстрации. Однако ключевые принципы применимы к любому другому дистрибутиву Linux.
Bash: npm: команда не найдена
Bash является оболочкой по умолчанию в большинстве дистрибутивов Linux. Когда мы запускаем команду на терминале, она переходит в Bash. Затем команда интерпретируется и выполняется.
Однако, если команда ищет инструмент, который Bash не распознает, она покажет ошибку.

Как следует из вывода, Bash не может найти команду «npm», связанную с каким-либо псевдонимом или инструментом Bash. Мы можем вывести несколько возможных сценариев:
- npm не установлен.
- js не установлен.
- Значение PATH (или соответствующей переменной среды) изменилось.
- Проблемы с разрешением.
- Была установлена старая версия Node.js.
Свежая установка Node.js
Наше самое первое решение включает переустановку Node.js и всех его компонентов с нуля. Поврежденная установка или конфигурация могут вызвать такую проблему во многих случаях. Мы удалим существующую установку, настроим выделенный репозиторий Node.js и создадим новую установку Node.js.
Удаление старых версий Node.js
Если у вас установлена старая версия Node.js, настоятельно рекомендуется выполнить обновление до последней стабильной версии (текущей или LTS). Старое программное обеспечение часто полно ошибок и уязвимостей. Большая часть кибератак происходит из-за того, что старое программное обеспечение не обновляется/исправляется.
Читать Что означает chmod 777
Сначала удалите Node.js с помощью диспетчера пакетов по умолчанию. Для Ubuntu APT — это менеджер пакетов. Выполните следующую команду, чтобы удалить Node.js и все его компоненты:
$ sudo apt autoremove --purge nodejs npm node
Затем выполните следующие команды, чтобы удалить все остатки из системы.
$ sudo rm -rf /usr/local/bin/npm $ sudo rm -rf /usr/local/share/man/man1/node* $ sudo rm -rf /usr/local/lib/dtrace/node.d $ sudo rm -rf ~/.npm $ sudo rm -rf ~/.node-gyp $ sudo rm -rf /opt/local/bin/node $ sudo rm -rf opt/local/include/node $ sudo rm -rf /opt/local/lib/node_modules $ sudo rm -rf /usr/local/lib/node* $ sudo rm -rf /usr/local/include/node* $ sudo rm -rf /usr/local/bin/node*
Установка последней версии Node.js
Наша основная цель — убедиться, что в вашей системе установлена последняя версия Node.js. У нас уже есть подробное руководство по установке Node.js и npm в Ubuntu.
Короче говоря, выполните следующие команды, чтобы установить официальный репозиторий Node.js для Ubuntu. На момент написания этой статьи последняя текущая версия — Node.js v17.x, а последняя версия LTS — v16.x. По рекомендации официального сайта Node.js мы будем устанавливать LTS-версию:
$ curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
Теперь установите Node.js:
$ sudo apt install nodejs -y
Теперь проверьте, распознает ли Bash npm как правильную команду.
$ npm help
Если процесс завершится успешно, вы получите страницу справки npm. В противном случае проблема сохранится.
Сбросить значение PATH
PATH — важная переменная среды, на которую полагаются многие части системы. Он сообщает оболочке (и системе), где искать определенные программы. Всякий раз, когда мы запускаем какую-либо команду, оболочка (в большинстве случаев Bash) ищет команду в местах, указанных в PATH. Если он не найден, он не распознает команду, даже если инструмент установлен правильно.
Чтобы увидеть значение переменной PATH, выполните следующую команду:
$ echo $PATH
Читать Как генерировать случайный пароль в оболочке Linux
В качестве альтернативы вы можете использовать следующую команду sed для печати вывода PATH. Он поместит каждую уникальную запись в новую строку.
$ sed 's/:/\n/g'Есть ли несоответствие в переменной PATH? В большинстве случаев в переменной PATH будет указано несколько путей. Попробуйте установить переменную PATH в состояние по умолчанию.
$ export PATH=$(getconf PATH)После исправления переменной PATH проверьте, может ли Bash теперь найти npm.
$ npm helpЕсли это устранило проблему, рассмотрите возможность ручной установки переменной PATH с помощью файла bashrc. Короче говоря, добавьте следующие строки в файл bashrc.
$ export PATH=$(getconf PATH) $ export PATH:$PATH: /usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin
- Первая строка устанавливает значение PATH по умолчанию.
- Вторая строка добавляет несколько дополнительных местоположений для поиска двоичных файлов. Это необязательно, но рекомендуется для большинства дистрибутивов.
Убедитесь, что обновление прошло успешно.
$ echo $PATH
Если вы используете переносную версию Node.js, вы также должны убедиться, что двоичное расположение также включено в переменную PATH. В противном случае Bash не сможет распознать двоичный файл.
Последние мысли
В этой статье по устранению неполадок продемонстрированы некоторые решения для устранения проблемы, из-за которой Bash не может найти двоичный файл npm. Обратите внимание, что эти шаги предназначены для устранения общих неполадок. Если ваша проблема не устранена после их выполнения, вам следует обратиться за помощью к специалисту. Существуют огромные сообщества, такие как Stackexchange , которые могут помочь вам в вашей ситуации.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.