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.