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ę .

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

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.