Wie führe ich eine js-Datei mit npm-Skripten aus?


87

Ich kann npm nicht zur Arbeit bringen. Meine package.json-Datei hat

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

und ich habe eine build.js-Datei im selben Ordner wie nur console.logs.

Wenn ich renne

npm run build

Ich bekomme den Fehler

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

und wenn ich die Datei build.js verschiebe und meine Datei package.json in einen Unterordner ändere

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

dann bekomme ich den fehler

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

Was läuft falsch? Ich kopiere die Beispieldokumentation .

Antworten:


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

npm run build ODER npm run-script build


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

npm start


NB: Ihnen fehlte der Befehl { brackets }und der Knoten

Ordnerstruktur ist in Ordnung:

+ build
  - package.json
  - build.js

1
Das funktioniert. Können Sie bitte erklären, warum "Knoten" benötigt wird? Im Nachhinein macht es Sinn, aber es steht nicht in den Dokumenten.
Richard

3
Der Knoten wird benötigt, da er zum Starten Ihres Skripts benötigt wird. Sie können hier einen beliebigen Befehl eingeben.
Severin.Julien

Er hat den nodeBefehl nicht "verpasst ", die Dokumentation, die er verlinkt hat, hat ihn auch nicht.
AndreKR

2

Sie sollten npm run-script buildoder verwenden npm build <project_folder>. Weitere Informationen hier: https://docs.npmjs.com/cli/build .


Das funktioniert nicht - der gleiche Fehler. Die Dokumente sagen, dass run-script nur ein Alias ​​für run ist.
Richard
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.