web-dev-qa-db-fra.com

Comment ajouter un script personnalisé à mon fichier package.json qui exécute un fichier javascript?

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. 

90
Jake.JS

Scripts personnalisés

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

Scripts de cycle de vie

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.

149
wesleysmyth

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" 
  }
13
Sujeet Jaiswal

Les étapes sont ci-dessous:

  1. Dans package.json, ajoutez:

    "bin":{
        "script1": "bin/script1.js" 
    }
    
  2. 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");
    
  3. Exécuter npm install shelljs dans le terminal

  4. Exécuter npm link dans le terminal

  5. À 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

8
Jake.JS

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.

0
FindOutIslamNow