Je veux pouvoir exécuter la commande script1
dans un répertoire de projet qui exécutera node script1.js
.
script1.js
est un fichier dans le même répertoire. La commande doit être spécifique au répertoire du projet, ce qui signifie que si j'envoie le dossier du projet à quelqu'un d'autre, il pourra exécuter la même commande.
Jusqu'à présent, j'ai essayé d'ajouter:
"scripts": {
"script1": "node script1.js"
}
dans mon fichier package.json mais lorsque j'essaie d'exécuter script1
, je reçois le résultat suivant:
zsh: command not found: script1
Est-ce que quelqu'un connaît les étapes nécessaires pour ajouter le script mentionné ci-dessus dans le dossier du projet?
* Remarque: la commande ne peut pas être ajoutée au profil bash (ne peut pas être une commande spécifique à une machine).
S'il vous plaît laissez-moi savoir si vous avez besoin de clarification.
npm run-script <custom_script_name>
ou
npm run <custom_script_name>
Dans votre exemple, vous voudriez exécuter npm run-script script1
ou npm run script1
.
Voir https://docs.npmjs.com/cli/run-script
Node vous permet également d'exécuter des scripts personnalisés pour certains événements du cycle de vie, comme après l'exécution de npm install
. Ceux-ci peuvent être trouvés ici .
Par exemple:
"scripts": {
"postinstall": "electron-rebuild",
},
Ceci exécuterait electron-rebuild
après une commande npm install
.
J'ai créé ce qui suit, et cela fonctionne sur mon système. S'il vous plaît essayez ceci:
package.json:
{
"name": "test app",
"version": "1.0.0",
"scripts": {
"start": "node script1.js"
}
}
script1.js:
console.log('testing')
À partir de votre ligne de commande, exécutez la commande suivante:
npm start
Cas d'utilisation supplémentaire
Mon fichier package.json contient généralement les scripts suivants, qui me permettent de consulter mes fichiers pour TypeScript, les compilations Sass et l’exécution d’un serveur.
"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"
}
Les étapes sont ci-dessous:
Dans package.json, ajoutez:
"bin":{
"script1": "bin/script1.js"
}
Créez un dossier bin
dans le répertoire du projet et ajoutez le fichier runScript1.js
avec le code:
#! /usr/bin/env node
var Shell = require("shelljs");
Shell.exec("node step1script.js");
Exécuter npm install shelljs
dans le terminal
Exécuter npm link
dans le terminal
À partir du terminal, vous pouvez maintenant exécuter script1
qui exécutera node script1.js
Référence: http://blog.npmjs.org/post/118810260230/building-a-simple-command-line-tool-with-npm
Exemple:
"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"
},
Comme vous pouvez le constater, le script "build_c" est en train de construire l’application angulaire, puis supprime tous les anciens fichiers d’un répertoire, puis copie finalement les fichiers de construction obtenus.