Estoy escribiendo una aplicación web en Node. Si tengo un archivo JS db.js con una función init , ¿cómo podría llamar a esa función desde la línea de comando?
No hay comentarios sobre por qué quiere hacer esto, o cuál podría ser una práctica más estándar: aquí hay una solución a su pregunta.... Tenga en cuenta que el tipo de comillas requeridas por su línea de comando puede variar.
En su db.js , exporte la función de init . Hay muchas formas, pero por ejemplo:
module.exports.init = function () { console.log('hi'); }; Luego llámelo así, asumiendo que su db.js está en el mismo directorio que su símbolo del sistema:
node -e 'require("./db").init()' Para otros lectores, la función de init del OP podría haberse llamado cualquier cosa, no es importante, es solo el nombre específico utilizado en la pregunta.
Según las otras respuestas, agregue lo siguiente a someFile.js
module.exports.someFunction = function () { console.log('hi'); }; Luego puede agregar lo siguiente a package.json
"scripts": { "myScript": "node -e 'require(\"./someFile\").someFunction()'" }Desde la terminal, puede llamar
npm run myScriptEncuentro que esta es una forma mucho más fácil de recordar los comandos y usarlos.
Actualización 2020 - CLI
Como señaló @mix3d, puede ejecutar un comando donde file.js es su archivo y someFunction es su función, opcionalmente seguido de parámetros separados por espacios
npx run-func file.js someFunction "just some parameter"Eso es todo.
file.js llamado en el ejemplo anterior
const someFunction = (param) => console.log('Welcome, your param is', param) // exporting is crucial module.exports = { someFunction }Descripción más detallada
Ejecutar directamente desde CLI (global)
Instalar
npm i -g run-funcUso, es decir, ejecute la función "init", debe exportarse, vea la parte inferior
run-func db.js inito
Ejecutar desde el script package.json (local)
Instalar
npm i -S run-funcConfiguración
"scripts": { "init": "run-func db.js init" }Uso
npm run initParámetros
Los siguientes argumentos se pasarán como parámetros de función init(param1, param2)
run-func db.js init param1 param2Importante
la función (en este ejemplo init ) debe exportarse en el archivo que la contiene
module.exports = { init };o exportación ES6
export { init };