¿Cómo solucionar el error npm ERR! Missing script: “start”?
Node.js es una herramienta bastante ventajosa para crear RESTful APIs. Seguramente estabas trabajando con Node.js y un package manager como npm o yarn cuando te topaste con un error como npm ERR! Missing script: "start"
o una variante como npm ERR! Missing script: "dev"
, npm ERR! Missing script: "test"
, o npm ERR! Missing script: "build"
.
¿Por qué suceden este tipo de errores? La verdad es que pueden ocurrir por una amplia variedad de razones.
¿Por qué ocurre el error npm ERR! Missing script: "start"
? 5 causas frecuentes
He aquí una lista de las causas más comunes del error npm ERR! Missing script: "start"
.
- Abrir tu editor de código (IDE) en una carpeta que no contiene el archivo
package.json
de tu proyecto - Abrir tu programa de línea de comandos en una carpeta que no contiene el archivo
package.json
de tu proyecto - No tienes un archivo de
package.json
para tu proyecto - No tienes un comando de
start
en la sección descripts
de tu archivopackage.json
- Tener más de un objeto
scripts
enpackage.json
Ahora bien, ¿cuál es la solución para este fallo?
¿Cómo arreglar el error npm ERR! Missing script: "start"
?
Lo más probable es que estés intentando iniciar un app de Node.js con el comando npm start
. Si este es tu caso, asegúrate de seguir los siguientes pasos.
- Si el error aparece en el editor de código (por ejemplo, un IDE como Visual Studio Code), lo más probable es que estés utilizando una Terminal Integrada (Integrated Terminal). Asegúrate que abriste el editor de código en el directorio de tu proyecto y que en la Terminal Integrada también te encuentras en el directorio de tu proyecto. Dentro de esta carpeta debería encontrarse el archivo
package.json
- Si el error aparece en un programa de línea de comandos, como Powershell, Terminal o iTerm2, cerciórate que te encuentras en la carpeta correcta. Dentro de esta carpeta debería encontrarse el archivo
package.json
Si intentas correr el comando npm start
desde un directorio distinto, npm
no encontrará el archivo de package.json
y te generará el error Missing script: "start"
.
- Si te encuentras en el directorio correcto, ¿existe un archivo
package.json
dentro de esta carpeta? Si no tienes unpackage.json
, puedes crear uno en tu programa de línea de comandos al ejecutar el siguiente comando:npm init -y
.
- Si ya te encuentras en la carpeta apropiada, abre el archivo
package.json
, y revisa la sección descripts
y asegúrate que esta tiene un comandostart
. Tu archivo depackage.json
debe tener una sección similar al bloque de código debajo. Presta especial atención a cómoscripts
tiene una propiedadstart
.
// package.json
{
"name": "demo-node-ts",
"version": "1.0.0",
"scripts": {
"start": "node index.js"
},
"devDependencies": {
"jest": "29.5.0"
}
}
- Otra causa es tener más de un objeto “scripts” en
package.json
. Esto provoca un error porque el segundo objeto “scripts” invalida al primero. Si tienes dos objectosscripts
, puede que solo tengas el comandostart
en el primer objetoscripts
. Así que confirma que solo tienes un objetoscripts
.
Comúnmente, cada proyecto Node.js tiene su propio archivo de package.json
donde se especifican datos descriptivos sobre el proyecto, como por ejemplo, el nombre, la versión, sus dependencias, y scripts que apuntan a otros archivos para ejecutarlos.
npm ERR! Missing script: “dev” y errores parecidos
En ocasiones puede que te topes con errores similares tales como los siguientes:
- npm ERR! Missing script: “dev”
- npm ERR! Missing script: “build”
- npm ERR! Missing script: “test”
- npm ERR! Missing script: “lint”
- npm ERR! Missing script: “watch”
El origen de estas fallas son las mismas que para el error de npm ERR! Missing script: "start"
. Así que analiza lo que ya se ha dicho en este artículo sobre la raíz de ese error y sus posibles resoluciones.