node - ¿Cómo agrego un script personalizado a mi archivo package.json que ejecuta un archivo javascript?
package.json que es (4)
Quiero poder ejecutar el comando
script1
en un directorio de proyecto que ejecutará el
node script1.js
.
script1.js
es un archivo en el mismo directorio.
El comando debe ser específico para el directorio del proyecto, lo que significa que si envío a alguien más la carpeta del proyecto, podrán ejecutar el mismo comando.
Hasta ahora he intentado agregar:
"scripts": {
"script1": "node script1.js"
}
a mi archivo package.json pero cuando intento ejecutar
script1
obtengo el siguiente resultado:
zsh: command not found: script1
¿Alguien sabe los pasos necesarios para agregar el script mencionado anteriormente a la carpeta del proyecto?
* Nota: el comando no se puede agregar al perfil bash (no puede ser un comando específico de la máquina)
Avíseme si necesita alguna aclaración.
Scripts personalizados
npm run-script <custom_script_name>
o
npm run <custom_script_name>
En su ejemplo, desearía ejecutar
npm run-script script1
o
npm run script1
.
Ver https://docs.npmjs.com/cli/run-script
Scripts de ciclo de vida
El nodo también le permite ejecutar scripts personalizados para ciertos eventos del ciclo de vida, como después de
npm install
.
Estos se pueden encontrar
here
.
Por ejemplo:
"scripts": {
"postinstall": "electron-rebuild",
},
Esto ejecutaría
electron-rebuild
después de un
npm install
.
Ejemplo:
"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"
},
Como puede ver, el script "build_c" está compilando la aplicación angular, luego elimina todos los archivos antiguos de un directorio, luego finalmente copia los archivos de compilación de resultados.
He creado lo siguiente y está funcionando en mi sistema. Por favor intente esto:
package.json:
{
"name": "test app",
"version": "1.0.0",
"scripts": {
"start": "node script1.js"
}
}
script1.js:
console.log(''testing'')
Desde su línea de comando ejecute el siguiente comando:
npm start
Caso de uso adicional
Mi archivo package.json generalmente tiene los siguientes scripts, que me permiten ver mis archivos en busca de mecanografiados, compilaciones sass y ejecutar un servidor también.
"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"
}
Los pasos están abajo:
-
En package.json agregue:
"bin":{ "script1": "bin/script1.js" }
-
Cree una carpeta
bin
en el directorio del proyecto y agregue el archivorunScript1.js
con el código:#! /usr/bin/env node var shell = require("shelljs"); shell.exec("node step1script.js");
-
Ejecute
npm install shelljs
en la terminal -
Ejecute el
npm link
en la terminal -
Desde la terminal ahora puede ejecutar
script1
que ejecutará elnode script1.js
Referencia: http://blog.npmjs.org/post/118810260230/building-a-simple-command-line-tool-with-npm