La variable NPM $npm_package_main siempre está vacía.
"main": "index.js""start": "node $npm_package_main"npm startProblema : la CLI ejecuta el modo Node REPL, ignorando la variable "principal" de package.json.
Comportamiento esperado : ejecute el comando como node index.js .
npm -v = 7.3.0node -v = v15.5.0npm run env | grep npm_package_name = npm_package_name=appnpm run env | grep npm_package_main = VACÍOconsole.log('HELLO');npm init y presione ENTER para todas las preguntaspackage.json y agregue la siguiente línea a la propiedad "scripts": "start": "node $npm_package_main", { "name": "app", "version": "1.0.0", "description": "", "main": "index.js", "devDependencies": {}, "scripts": { "start": "node $npm_package_main", "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" }Establezca "inicio" y ejecute "npm start" para:
La respuesta oficial de NPM: use "nodo". No hay una razón oficial para este comportamiento, hasta esta publicación.
Según la documentación, la propiedad "principal" contiene el punto de entrada de su aplicación cuando se usa como módulo en otros proyectos:https://docs.npmjs.com/cli/v7/configuring-npm/package-json#main
{ "name": "app", "version": "1.0.0", "description": "", "devDependencies": {}, "config": { "main": "index.js" }, "scripts": { "start": "node $npm_package_config_main", "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" }