mac last instalar como commands node.js npm

node.js - last - npm paquete de instalación local a la ubicación personalizada



npm last version (6)

TL; DR

Puede hacer esto usando el indicador --prefix y el --global *.

pje@friendbear:~/foo $ npm install bower -g --prefix ./vendor/node_modules [email protected] /Users/pje/foo/vendor/node_modules/bower

* Aunque esta es una instalación "global", no se podrá acceder a los contenedores instalados a través de la línea de comandos a menos que ~/foo/vendor/node_modules exista en PATH .

TL; R

Cada atributo configurable de npm se puede establecer en cualquiera de los seis lugares diferentes. En orden de prioridad:

  • Indicadores de línea de comando: --prefix ./vendor/node_modules
  • Variables de entorno: NPM_CONFIG_PREFIX=./vendor/node_modules
  • Archivo de configuración de usuario: $HOME/.npmrc o userconfig param
  • Archivo de configuración global: $PREFIX/etc/npmrc o userconfig param
  • Archivo de configuración incorporado: path/to/npm/itself/npmrc
  • Configuración predeterminada: node_modules / npmconf / config-defs.js

Por defecto, los paquetes instalados localmente entran en ./node_modules . los globales entran en la variable de configuración del prefix ( /usr/local de forma predeterminada).

Puede ejecutar npm config list para ver su configuración actual y npm config edit para cambiarlo.

PD

En general, la documentación de npm es realmente útil. La sección de carpetas es una buena descripción estructural de npm y la sección de configuración responde a esta pregunta.

¿Es posible especificar un destino de paquete personalizado para la npm install , ya sea a través de un indicador de comando o una variable de entorno?

De forma predeterminada, las instalaciones locales npm terminan en node_modules dentro del directorio actual, pero quiero que se instale en node_modules dentro de un directorio diferente, por ejemplo vendor/node_modules . ¿Cómo puedo hacer que eso suceda?


Después de buscar esto yo mismo, queriendo varios proyectos con dependencias compartidas para ser DRYer, he encontrado:

  • La instalación local es la forma de Nodo para todo lo que quiera usar a través de require()
  • La instalación global es para los binarios que desee en su camino, pero no está destinado a nada a través de require()
  • El uso de un prefijo significa que debe agregar las rutas apropiadas bin y man a $PATH
  • npm link ( información ) le permite usar una instalación local como fuente para globales

→ apegarse al modo Nodo e instalarlo localmente

árbitro:


En Windows 7, por ejemplo, se podría usar el siguiente conjunto de comandos / operaciones.

Cree una variable de entorno personal, las barras diagonales inversas dobles son obligatorias:

  • Nombre de la variable: %NPM_HOME%
  • Valor de la variable: C://SomeFolder//SubFolder//

Ahora, establezca los valores de configuración en las nuevas carpetas (ejemplos de nombres de archivos):

  • Establecer la carpeta npm

npm config set prefix "%NPM_HOME%//npm"

  • Establezca la carpeta npm-cache

npm config set cache "%NPM_HOME%//npm-cache"

  • Establecer la carpeta temporal npm

npm config set tmp "%NPM_HOME%//temp"

Opcionalmente, puede purgar el contenido de las carpetas originales antes de que se cambie la configuración.

  • Eliminar el npm-cache npm cache clear

  • Listar los módulos npm -g ls

  • Eliminar los módulos npm -g rm name_of_package1 name_of_package2


Para OSX, puede ir al $HOME su usuario (probablemente / Users / yourname /) y, si aún no existe, crear un archivo .npmrc (un archivo que npm usa para la configuración del usuario) y crear un directorio para sus paquetes npm para ser instalados en (por ejemplo, / Users / yourname / npm). En ese archivo .npmrc, configure "prefijo" en su nuevo directorio npm, que será donde se instalarán los paquetes npm instalados "globalmente"; estos paquetes "globales", obviamente, estarán disponibles solo para su cuenta de usuario.

En .npmrc:

prefix=${HOME}/npm

Luego ejecuta este comando desde la línea de comando:

npm config ls -l

Debería dar salida tanto a su propia configuración local como a la configuración global de npm, y debería ver reflejada su configuración de prefijo local, probablemente cerca de la parte superior de la larga lista de resultados.

Por razones de seguridad, recomiendo este enfoque para configurar el comportamiento npm de su cuenta de usuario sobre la selección de sus carpetas /usr/local , que he visto recomendado en otro lugar.


Si quieres esto en config, puedes establecer la configuración de npm así:

npm config set prefix "$(pwd)/vendor/node_modules"

o

npm config set prefix "$HOME/vendor/node_modules"

Verifica tu configuración con

npm config ls -l

O como dice @pje y usa la bandera --prefix


Simplemente instalaría localmente, luego en su package.json, moverlo de la sección de dependencias a devDependencies. Dependiendo de lo que utilice para implementar, es posible que no se implemente (por ejemplo, no lo haría en heroku).

devDependencies": { "module": "0.1.0" }