it-swarm.dev

Come aggiungo uno script personalizzato al mio file package.json che esegue un file javascript?

Voglio essere in grado di eseguire il comando script1 in una directory di progetto che eseguirà node script1.js.

script1.js è un file nella stessa directory. Il comando deve essere specifico per la directory del progetto, nel senso che se invio a qualcun altro la cartella del progetto, sarà possibile eseguire lo stesso comando. 

Finora ho provato ad aggiungere:

"scripts": {
    "script1": "node script1.js"
}

al mio file package.json ma quando provo a eseguire script1 ottengo il seguente risultato:

zsh: command not found: script1

Qualcuno conosce i passi necessari per aggiungere lo script citato sopra alla cartella del progetto?

* Nota: il comando non può essere aggiunto al profilo bash (non può essere un comando specifico della macchina)

Per favore fatemi sapere se avete bisogno di chiarimenti. 

90
Jake.JS

Script personalizzati

npm run-script <custom_script_name>

o

npm run <custom_script_name>

Nel tuo esempio, vorrai eseguire npm run-script script1 o npm run script1.

Vedi https://docs.npmjs.com/cli/run-script

Script del ciclo di vita

Il nodo consente inoltre di eseguire script personalizzati per determinati eventi del ciclo di vita, ad esempio dopo l'esecuzione di npm install. Questi possono essere trovati qui

Per esempio: 

"scripts": {
    "postinstall": "electron-rebuild",
},

Questo eseguirà electron-rebuild dopo un comando npm install.

149
wesleysmyth

Ho creato il seguente, e sta funzionando sul mio sistema. Per favore prova questo:

package.json:

{
  "name": "test app",
  "version": "1.0.0",
  "scripts": {
    "start": "node script1.js"   
  }
}

script1.js:

console.log('testing')

Dalla riga di comando eseguire il seguente comando:

npm start

Caso d'uso aggiuntivo  

Il mio file package.json ha generalmente i seguenti script, che mi consentono di guardare i miei file per TypeScript, compilare sass e far girare anche un 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" 
  }
13
Sujeet Jaiswal

I passaggi sono di seguito:

  1. In package.json aggiungi:

    "bin":{
        "script1": "bin/script1.js" 
    }
    
  2. Crea una cartella bin nella directory del progetto e aggiungi il file runScript1.js con il codice:

    #! /usr/bin/env node
    var Shell = require("shelljs");
    Shell.exec("node step1script.js");
    
  3. Esegui npm install shelljs nel terminale

  4. Esegui npm link nel terminale

  5. Da terminale puoi ora eseguire script1 che eseguirà node script1.js

Riferimento: http://blog.npmjs.org/post/118810260230/building-a-simple-command-line-tool-with-npm

8
Jake.JS

Esempio:

  "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"
  },

Come puoi vedere, lo script "build_c" sta costruendo l'applicazione angolare, quindi elimina tutti i vecchi file da una directory, quindi copia i file di generazione dei risultati.

0
FindOutIslamNow