Utilizo windows, git bash, sigo todos los pasos y cuando escribo “random-msg” me salta el siguiente error: “/urs/bin/env: No such file o...

Pregunta de la clase:
Publicar un paquete en NPM
Mariano Álvarez

Mariano Álvarez

Pregunta
studenthace 4 años

Utilizo windows, git bash, sigo todos los pasos y cuando escribo “random-msg” me salta el siguiente error:

“/urs/bin/env: No such file or directory”

A medida que avanzo con la escuela de Javascript, más me pierdo…

6 respuestas
para escribir tu comentario
    Emmanuel Fernando Gómez Díaz

    Emmanuel Fernando Gómez Díaz

    studenthace 3 años

    Hola amigo, tuve el mismo error ya que al trabajar en windows hay algunas cosas que cambian.

    1. Hay que tener en cuenta que windows omite esta línea #!/usr/bin/env node.
    2. Al ejecutar el comando ++npm link++ lo que sucede es que se crea un acceso directo de nuestro directorio random-messages en la siguiente ruta ++C:\Users\xxxxxx\AppData\Roaming\npm\node_modules++ adicional a esto debería crearse los archivos (random-msg, random-msg.cmd, random-msg.ps1) en ++C:\Users\xxxxxx\AppData\Roaming\npm++ que permiten ejecutar el modulo solo llamando lo por su nombre, pero esto no sucede si en tu package.json en bin lo tienes así
    "bin":{ "random-msg": "./bin/global.js" }

    ya que al trabajar en windows el archivo no será llamado desde esta ruta si no desde

    "bin":{ "random-msg": "./src/global.js" }

    de esta forma vuelves a ejecutar el comando ++npm link++ y te debe crear los 3 archivos mencionados. 3. Finalmente ya al intentar ejecutar el modulo ingresando random-msg puede que te salga el siguiente error

    ..../random-msg.ps1 no está firmado digitalmente. No se puede ejecutar este script en el sistema actual. ......

    Esto puede ser debido a la política de ejecución que tengas definida para la ejecución de este tipo de archivos (.ps1). Así que para poder continuar puedes hacer lo siguiente para dar permisos temporalmente.

    Get-ExecutionPolicy -list

    Este comando te mostrará los Ámbitos de la directiva de ejecución, para efectos de este ejercicio puedes cambiar la política para CurrentUser así

    Set-ExecutionPolicy unrestricted -Scope CurrentUser

    Cuando ya hayas terminado con la práctica aconsejo dejar indefinida la política para CurrentUser por seguridad.

    Set-ExecutionPolicy undefined -Scope CurrentUser
    1. Luego de realizar los pasos anteriores podrás ejecutar sin problema random-msg.
    Fernando Elías Díaz Acosta

    Fernando Elías Díaz Acosta

    studenthace 3 años

    Me aparecía este error luego de hacer npm link e intentar ejecutar el paquete por consola con el nombre definido en el bin.

    El término ‘usr/bin/env.exe’ no se reconoce como nombre de un cmdlet, función, archivo de script o programa ejecutable. Compruebe si escribió correctamente el nombre o, si incluyó una ruta de acceso, compruebe que dicha ruta es correcta e inténtelo de nuevo.

    Di muchísimas vueltas intentando resolverlo. Por ejemplo, intenté:

    Revisar si efectivamente se estaba creando el enlace de forma global mirando la carpeta de nvm. OK Revisar la escritura de cada archivo y línea dentro del paquete. OK Cambiar el package.json para que todos los nombres y comandos coincidieran. OK El problema era el final de línea de mi computador. Resulta que el archivo global.js que está dentro de bin es un ejecutable por eso se pone esta línea al principio: #!/usr/bin/env node. Mi pc es windows y funciona con CRLF pero hace un tiempo había cambiado la configuración global de git para que fuera LF como los sistemas Unix (que el que usa git por defecto). Entonces como mi final de línea era LF, mi pc no entendía que significaba la línea de arriba. La solución cambiar nuevamente a CRLF para ese repositorio en particular.

    David Leonardo Baron Avilan

    David Leonardo Baron Avilan

    studenthace 3 años

    Lo que ocurre es que esa ruta que especificas (la que especificamos con #!) puede tener dos problemas:

    • O uno, tienes un typo y la carpeta es usr y no urs.
    • O dos, como tienes windows, tienes que poner la carpeta específica, por ejemplo
    #!E:\Platzi\CursoDeNPM\random-messages\bin\env node

    (E:) es el disco duro, luego tengo mi rama de carpetas y finalmente llegas a la carpeta bin que creaste.
    Espero haber solucionado tu problema!! Y si no, estaré pendiente para poder seguirte ayudando.

    @feeldiac Espero también ayudarte

    Fernando Elías Díaz Acosta

    Fernando Elías Díaz Acosta

    studenthace 3 años

    ¿Se solucionó?, tengo el mismo error.

    José Galdámez

    José Galdámez

    studenthace 3 años

    Esto es relacionado con la dirección donde está instalado node en tu máquina. en mi caso cambiar a #!/usr/local/bin/node me ayudó.

    Fausto Misael Obregón Cabezas

    Fausto Misael Obregón Cabezas

    studenthace 3 años

    x2

Curso de Gestión de Dependencias y Paquetes con NPM

Curso de Gestión de Dependencias y Paquetes con NPM

NPM es el gestor de paquetes y dependencias más usado para desarrollar con JavaScript. Administra módulos, distribuye paquetes y agrega dependencias a tus proyectos. Instala y gestiona librerías Javascript. Crea tus propias librerías y domina uno de las herramientas más importantes en el desarrollo con JavaScript.

Curso de Gestión de Dependencias y Paquetes con NPM
Curso de Gestión de Dependencias y Paquetes con NPM

Curso de Gestión de Dependencias y Paquetes con NPM

NPM es el gestor de paquetes y dependencias más usado para desarrollar con JavaScript. Administra módulos, distribuye paquetes y agrega dependencias a tus proyectos. Instala y gestiona librerías Javascript. Crea tus propias librerías y domina uno de las herramientas más importantes en el desarrollo con JavaScript.