Tabla de contenido
Cree una solución de almacén npm privada basada en verdaccio
1. Introducción
La ecología de front-end ha sido muy próspera. A medida que las necesidades se vuelven cada vez más complejas, las aplicaciones de front-end son cada vez más grandes. Para mejorar el desacoplamiento de servicios, el trabajo en equipo y otras razones, las aplicaciones de front-end generalmente grandes se dividirán en varios proyectos Los servicios se mantienen, y en estos servicios, generalmente hay una gran cantidad de los mismos componentes, especialmente los componentes de la parte de la interfaz de usuario. Obviamente, no debemos copiar estos componentes en cada servicio, así que si quiero agregar o actualizar un componente Entonces será muy doloroso, por lo que la mayor parte de la práctica consiste en extraer los componentes públicos. Entonces la pregunta es, ¿dónde debería publicarlo? Definitivamente no es apropiado poner npm. Este es un componente interno de la empresa. Por lo tanto, la práctica común es construir un almacén privado de npm para realizar la biblioteca privada interna de la empresa. En resumen, tiene las siguientes ventajas:
- Componentes internos de la empresa anfitriona, lograr la privatización y fácil de administrar y actualizar
- Los almacenes privados generalmente utilizan los servidores internos de la empresa y se aprovechan las velocidades de descarga
2. Selección del plan de construcción del almacén privado
Introducir directamente los programas gratuitos actualmente en el mercado
-
REGISTRO PRIVADO DIY NPM
El sitio web oficial de npm proporciona una solución para construir un almacén privado, pero este tipo de solución se construye completamente por su cuenta. No se recomienda en términos de tiempo o solidez. Haga clic para ver el enlace
-
Git
Use Git para el almacenamiento, solo especifique la URL del repositorio de git en package.json, pero este enfoque tiene las siguientes deficiencias
1) Complete package.json con los almacenes de git que no están relacionados con este proyecto
2) Cuando el repositorio de git es privado, se requieren credenciales HTTPS o SSH y, por lo general, no tenemos permisos para cada equipo.
-
Sinopia
El antecesor del verdaccio, pero ya no se mantiene
-
Cnpmjs.org
cnpm es más problemático de construir, verifique git
-
Verdaccio es un registro de repositorio npm privado local simple sin configuración . ¡No necesitas una base de datos para comenzar! Verdaccio proporciona su propia base de datos pequeña, así como la capacidad de proxy de otros registros (como el sitio web npmjs.org), y también puede almacenar en caché los módulos descargados.
Esta es también la solución recomendada para construir un almacén npm privado en este artículo.
3. Pasos de construcción (no acoplable)
-
Un servidor dentro de la empresa, la empresa generalmente lo solicita.
-
Instalación de Nodejs
-
npm install -g verdaccio
-
Una vez instalado, debe ejecutar cli más
$> verdaccio warn --- config file - /home/.config/verdaccio/config.yaml warn --- http address - http://localhost:4873/ - verdaccio/4.5.0
Puede configurar la información del registro npm
npm set registry http://localhost:4873/
Cree un archivo de registro .npmc
//.npmrc registry=http://localhost:4873
O agregue una configuración en package.json
{ "publishConfig": { "registry": "http://localhost:4873" } }
4. Compilación basada en Docker
-
Extraer la imagen de la ventana acoplable
docker pull verdaccio/verdaccio
-
Ejecutar verdaccio con Docker
docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio
El último parámetro define qué imagen usar. Si no extrajo la imagen, el código anterior extraerá la última imagen de verdaccio en dockerhub.Se
puede decir que es fácil de construir con docker, básicamente simplemente ejecute el comando.
5. Cargar paquetes
-
Añadir cuenta
verdaccio permite que cualquiera pueda crear una cuenta. Si no se configura ningún archivo de configuración de verdaccio
config.yaml
, por defecto cualquier desarrollador que se haya registrado con verdaccio tiene permiso de publicación// 添加账号 npm adduser --registry your_address
-
Agregar .npmrc
registry=your_address
-
npm publicar
Tenga en cuenta que debe modificar la versión después de cada actualización.