Ik wil de opdracht script1
kunnen uitvoeren in een projectdirectory die node script1.js
zal uitvoeren.
script1.js
is een bestand in dezelfde map. De opdracht moet specifiek zijn voor de projectmap, wat betekent dat als ik iemand anders de projectmap stuur, ze dezelfde opdracht kunnen uitvoeren.
Tot nu toe heb ik geprobeerd het volgende toe te voegen:
"scripts": {
"script1": "node script1.js"
}
naar mijn package.json-bestand, maar wanneer ik script1
probeer uit te voeren, krijg ik de volgende uitvoer:
zsh: command not found: script1
Weet iemand de stappen die nodig zijn om het hierboven genoemde script aan de projectmap toe te voegen?
*Opmerking: de opdracht kan niet worden toegevoegd aan het bash-profiel (kan geen machinespecifieke opdracht zijn)
Laat het me weten als je opheldering nodig hebt.
Antwoord 1, autoriteit 100%
Aangepaste scripts
npm run-script <custom_script_name>
of
npm run <custom_script_name>
uit
In uw voorbeeld zou u npm run-script script1
of npm run script1
willen uitvoeren.
Zie https://docs.npmjs.com/cli/run-script
Levenscyclusscripts
Node stelt je ook in staat om aangepaste scripts uit te voeren voor bepaalde levenscyclusgebeurtenissen, zoals nadat npm install
is uitgevoerd. Deze zijn hierte vinden.
Bijvoorbeeld:
"scripts": {
"postinstall": "electron-rebuild",
},
Hiermee zou electron-rebuild
worden uitgevoerd na een npm install
-opdracht.
Antwoord 2, autoriteit 10%
Ik heb het volgende gemaakt en het werkt op mijn systeem. Probeer dit alstublieft:
pakket.json:
{
"name": "test app",
"version": "1.0.0",
"scripts": {
"start": "node script1.js"
}
}
script1.js:
console.log('testing')
Voer vanaf uw opdrachtregel de volgende opdracht uit:
npm start
Extra gebruiksvoorbeeld
Mijn package.json-bestand heeft over het algemeen de volgende scripts, waardoor ik mijn bestanden kan controleren op typscript, sass-compilaties en het uitvoeren van een server.
"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"
}
Antwoord 3, autoriteit 9%
De stappen staan hieronder:
-
Voeg in package.json toe:
"bin":{ "script1": "bin/script1.js" }
-
Maak een
bin
-map in de projectdirectory en voeg het bestandrunScript1.js
toe met de code:#! /usr/bin/env node var shell = require("shelljs"); shell.exec("node step1script.js");
-
Voer
npm install shelljs
uit in terminal -
Voer
npm link
uit in terminal -
Vanaf terminal kunt u nu
script1
uitvoeren, waarmeenode script1.js
wordt uitgevoerd
Referentie: http:// blog.npmjs.org/post/118810260230/building-a-simple-command-line-tool-with-npm
Antwoord 4, autoriteit 2%
Laten we zeggen dat je in scripts 2 commando’s wilt uitvoeren met één commando:
"scripts":{
"start":"any command",
"singleCommandToRunTwoCommand":"some command here && npm start"
}
Ga nu naar uw terminal en voer daar npm run singleCommandToRunTwoCommand
uit.
Antwoord 5
Stel dat ik deze regel met scripts in mijn “package.json” heb
"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"
},
Om nu het script “export_advertisements” uit te voeren, ga ik gewoon naar de terminal en typ
npm run export_advertisements
Je bent van harte welkom 😊😊
Antwoord 6
Uw script
"scripts": {
"start": "node script1.js",
"script2": "node script2.js"
}
Opdrachten
npm start
npm run script2
Antwoord 7
Voorbeeld:
"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"
},
Zoals je kunt zien, bouwt het script “build_c” de hoekige applicatie, verwijdert vervolgens alle oude bestanden uit een map en kopieert vervolgens de resultaat-buildbestanden.