Jak uruchomić plik js za pomocą skryptów npm?

89

Nie mogę zmusić npm do pracy. Mój plik package.json ma

"scripts": { "build": "build.js" }

i mam plik build.js w tym samym folderze co po prostu console.logs.

Kiedy biegnę

npm run build

Otrzymuję błąd

The system cannot execute the specified program.

npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "build"
npm ERR! node v4.1.1
npm ERR! npm  v3.3.5
npm ERR! code ELIFECYCLE

i jeśli przeniosę plik build.js i zmienię mój plik package.json tak, aby miał podfolder

"scripts": { "build": "build/build.js" }

wtedy pojawia się błąd

'build' is not recognized as an internal or external command, operable program or batch file.

Co się dzieje? Kopiuję przykładową dokumentację .

Richard
źródło

Odpowiedzi:

132
{ "scripts" :
  { "build": "node build.js"}
}

npm run build LUB npm run-script build


{
  "name": "build",
  "version": "1.0.0",
  "scripts": {
    "start": "node build.js"
  }
}

npm start


NB: zostałeś brakuje { brackets }i ten węzeł polecenia

struktura folderów jest w porządku:

+ build
  - package.json
  - build.js
Luca Filosofi
źródło
1
To działa. Czy możesz wyjaśnić, dlaczego potrzebny jest „węzeł”? Z perspektywy czasu ma to sens, ale nie ma tego w dokumentacji.
Richard
3
Węzeł jest potrzebny, ponieważ jest potrzebny do uruchomienia skryptu. Tutaj możesz umieścić dowolne polecenie.
severin.julien
Nie „brakowało mu nodepolecenia”, dokumentacja, którą łączył, też go nie zawiera.
AndreKR
2

Powinieneś użyć npm run-script buildlub npm build <project_folder>. Więcej informacji tutaj: https://docs.npmjs.com/cli/build .

Shanoor
źródło
To nie działa - ten sam błąd. Dokumentacja mówi, że run-script jest po prostu aliasem do uruchomienia.
Richard,