Я хочу иметь возможность выполнить команду script1 в каталоге проекта, который будет запускать node script1.js.

script1.js - файл в том же каталоге. Команда должна быть привязана к каталогу проекта, а это означает, что если я отправлю кому-нибудь еще папку проекта, они смогут выполнить ту же команду.

Пока пробовал добавить:

"scripts": {
    "script1": "node script1.js"
}

в мой файл package.json, но когда я пытаюсь запустить script1, я получаю следующий результат:

zsh: command not found: script1

Кто-нибудь знает шаги, необходимые для добавления упомянутого выше скрипта в папку проекта?

* Примечание: команду нельзя добавить в профиль bash (не может быть машинной командой)

Пожалуйста, дайте мне знать, если вам нужны пояснения.

Ответы (7)

Пользовательские сценарии

npm run-script

или

npm run

В вашем примере вам нужно запустить npm run-script script1 или npm run script1.

См. https://docs.npmjs.com/cli/run-script

Скрипты жизненного цикла

Node также позволяет запускать пользовательские сценарии для определенных событий жизненного цикла, например, после запуска npm install. Их можно найти здесь.

Например:

"scripts": {
    "postinstall": "electron-rebuild",
},

Это запустит electronic-rebuild после команды npm install.

Ваш скрипт

"scripts": {
    "start": "node script1.js",
    "script2": "node script2.js"
}

Команды

npm start
npm run script2

Допустим, в сценариях вы хотите запустить 2 команды с помощью одной команды:

"scripts":{
  "start":"any command",
  "singleCommandToRunTwoCommand":"some command here && npm start"
}

Теперь перейдите в свой терминал и запустите там npm run singleCommandToRunTwoCommand.

Шаги ниже:

  1. В package.json добавьте:

    "корзина": {
        "script1": "bin / script1.js"
    }
    
  2. Создайте папку bin в каталоге проекта и добавьте файл runScript1.js с кодом:

    #! / usr / bin / env узел
    var shell = require ("shelljs");
    shell.exec ("узел step1script.js");
    
  3. Выполнить npm install shelljs в терминале

  4. Работа ссылка npm в терминале

  5. Из терминала теперь вы можете запустить script1, который будет запускать node script1.js

Ссылка: http://blog.npmjs.org/post/118810260230/building-a-simple-command-line-tool-with-npm

Предположим, у меня есть эта строка скриптов в моем "package.json"

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "export_advertisements": "node export.js advertisements",
    "export_homedata": "node export.js homedata",
    "export_customdata": "node export.js customdata",
    "export_rooms": "node export.js rooms"
  },

Теперь, чтобы запустить скрипт export_advertisements, я просто перейду в терминал и наберу

npm run export_advertisements

Добро пожаловать 😊😊

Я создал следующее, и оно работает в моей системе. Пожалуйста, попробуйте это:

package.json:

{
  "name": "test app",
  "version": "1.0.0",
  "scripts": {
    "start": "node script1.js"   
  }
}

script1.js:

console.log('testing')

В командной строке выполните следующую команду:

npm start

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

В моем файле package.json обычно есть следующие сценарии, которые позволяют мне просматривать мои файлы на предмет машинописного текста, компиляции sass, а также запуска сервера.

 "scripts": {
    "start": "concurrently \"sass --watch ./style/sass:./style/css\" \"npm run tsc:w\" \"npm run lite\" ",    
    "tsc": "tsc",
    "tsc:w": "tsc -w", 
    "lite": "lite-server",
    "typings": "typings",
    "postinstall": "typings install" 
  }

Пример:

  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build --prod",
    "build_c": "ng build --prod && del \"../../server/front-end/*.*\" /s /q & xcopy /s dist \"../../server/front-end\"",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },

Как видите, сценарий build_c создает приложение angular, затем удаляет все старые файлы из каталога, а затем, наконец, копирует файлы сборки результатов.

2022 WebDevInsider