скрипт bash не запускается, когда я набираю $ npm build в консоли

#node.js #bash #npm #package.json

#node.js #bash #npm #package.json

Вопрос:

Я хочу написать пакетный скрипт ( build.sh ) для установки зависимостей, одновременного запуска интерфейса и серверной части

файл package.json

 "scripts": {
  "dev": "nodemon server.js",
  "client": "cd client amp;amp; npm start",
  "start": "concurrently "npm run dev" "npm run client" ",
  "build": "chmod  x ./build.sh"
},
 

сборка.файл sh

 #!/bin/bash

npm run build

npm i aws-sdk body-parser concurrently cors dotenv express joi mongoose multer multer-s3 

cd client
npm i axios bootstrap config jquery node-modules react react-bootstrap react-dom react-scripts redux redux-form redux-thunk web-vitals 
cd ..

npm start
 

Я не уверен, чего мне не хватает, чтобы он работал правильно?
Заранее спасибо!

Когда я набираю $ npm build , в командной строке (в каталоге приложения, конечно) Я получаю это:

 Usage: npm <command>

where <command> is one of:
    access, adduser, audit, bin, bugs, c, cache, ci, cit,
    clean-install, clean-install-test, completion, config,
    create, ddp, dedupe, deprecate, dist-tag, docs, doctor,
    edit, explore, fund, get, help, help-search, hook, i, init,
    install, install-ci-test, install-test, it, link, list, ln,
    login, logout, ls, org, outdated, owner, pack, ping, prefix,
    profile, prune, publish, rb, rebuild, repo, restart, root,
    run, run-script, s, se, search, set, shrinkwrap, star,
    stars, start, stop, t, team, test, token, tst, un,
    uninstall, unpublish, unstar, up, update, v, version, view,
    whoami

npm <command> -h  quick help on <command>
npm -l            display full usage info
npm help <term>   search for help on <term>
npm help npm      involved overview

Specify configs in the ini-formatted file:
    /Users/SebastianRusso/.npmrc
or on the command line via: npm <command> --key value
Config info can be viewed via: npm help config

npm@6.14.5 /usr/local/lib/node_modules/npm

Did you mean this?
    rebuild
Sebastians-MacBook-Pro:profile-app-server SebastianRusso$ npm buildd

Usage: npm <command>

where <command> is one of:
    access, adduser, audit, bin, bugs, c, cache, ci, cit,
    clean-install, clean-install-test, completion, config,
    create, ddp, dedupe, deprecate, dist-tag, docs, doctor,
    edit, explore, fund, get, help, help-search, hook, i, init,
    install, install-ci-test, install-test, it, link, list, ln,
    login, logout, ls, org, outdated, owner, pack, ping, prefix,
    profile, prune, publish, rb, rebuild, repo, restart, root,
    run, run-script, s, se, search, set, shrinkwrap, star,
    stars, start, stop, t, team, test, token, tst, un,
    uninstall, unpublish, unstar, up, update, v, version, view,
    whoami

npm <command> -h  quick help on <command>
npm -l            display full usage info
npm help <term>   search for help on <term>
npm help npm      involved overview

Specify configs in the ini-formatted file:
    /Users/SebastianRusso/.npmrc
or on the command line via: npm <command> --key value
Config info can be viewed via: npm help config

npm@6.14.5 /usr/local/lib/node_modules/npm

Did you mean this?
    rebuild
 

Комментарии:

1. запуск npm-сборка скрипта?

2. Просто для ясности, ваше сообщение об ошибке, похоже, не появляется при вводе $ npm build , но npm build . $ не является частью команды, просто соглашение для представления командной строки пользователя.

3. Да, если бы я не был ясен ^ это то, что я имел в виду. Спасибо

Ответ №1:

build недопустимая команда CLI для npm . Чтобы запустить build скрипт, определенный в package.json , выполните $ npm run build .

Комментарии:

1. спасибо, $ npm run build, запускает его. но он выводит только: «> chmod x ./build.sh » вместо того, чтобы загружать зависимости и запускать приложение.

2. Он запускает соответствующую команду, в которой вы указали package.json . Чего вы ожидали от него?

3. Конечно, это потому, что все, что вы попросили его сделать, это добавить права доступа к исполняемому файлу build.sh . Если вы также хотите запустить этот скрипт, замените определение build в package.json на chmod x ./build.sh amp;amp; ./build.sh

4. интересно, и спасибо, что сработало. мне любопытно, почему вам нужно добавить «amp;amp; . /build.sh «во второй раз. несмотря на это, это работает, так что еще раз спасибо.

Ответ №2:

 "build": "chmod  x ./build.sh"
 

должно быть:

 "build": "./build.sh"
 

chmod x просто делает build.sh файл исполняемым, на самом деле он его не запускает.

Затем, чтобы запустить команду сборки из npm, вы должны использовать npm run build , как указано в другом ответе.