Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

894
Visualizações
¿Hay alguna forma de arreglar package-lock.json lockfileVersion para que npm use un formato específico?

Si dos desarrolladores diferentes usan versiones diferentes de node (12/15) y npm (6/7) en un proyecto que se creó originalmente usando un package-lock.json "lockfileVersion": 1 , cuando el desarrollador que usa npm 7x instala una nueva paquetes parece que el package-lock.json se vuelve a crear usando "lockfileVersion": 2 .

Esto parece causar problemas para el desarrollador que usa npm v6, ya que intenta funcionar con lockfileVersion 2 , pero termina produciendo nuevas diferencias.

npm WARN read-shrinkwrap Esta versión de npm es compatible con lockfileVersion@1, pero se generó package-lock.json para lockfileVersion@2. ¡Intentaré hacerlo lo mejor posible con él!

¿Hay alguna forma de especificar que las versiones más nuevas de npm solo usen "lockfileVersion": 1 ? ¿O solo tenemos que obtener todos los desarrolladores en la misma versión de npm ?

over 4 years ago · Santiago Trujillo
5 Respostas
Responde à pergunta

0

Prueba esto: npm i -g npm@latest

Si esto no soluciona su problema, intente reiniciar su PC.

over 4 years ago · Santiago Trujillo Relatório

0

npm WARN read-shrinkwrap Esta versión de npm es compatible con lockfileVersion@1, pero se generó package-lock.json para lockfileVersion@2. ¡Intentaré hacerlo lo mejor posible con él!

para superar este problema, ejecute el comando

 npm i -g npm@latest

globalmente y ejecutando el comando

 npm i npm@latest

en el archivo del proyecto me ayudó a resolver el problema.

over 4 years ago · Santiago Trujillo Relatório

0

Me encontré con el mismo problema hoy. Estoy trabajando en un proyecto con un desarrollador que tiene una versión diferente de npm (>7) y me encontré con el mismo problema. Simplemente actualicé mi versión de npm a la última versión que estaba utilizando el otro desarrollador como se mencionó anteriormente. Los siguientes son los pasos para actualizar su npm (para Windows):

Primero, asegúrese de que puede ejecutar scripts en su sistema ejecutando el siguiente comando desde un PowerShell elevado. Para ejecutar PowerShell como Administrator , haga clic en Start , busque PowerShell , haga clic con el botón derecho en PowerShell y seleccione Run as Administrator .

A continuación, ejecute los siguientes comandos:

 Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force

Luego, para instalar y usar esta herramienta de actualización, ejecute el siguiente comando (también desde un PowerShell o cmd.exe elevado). Nota: esta herramienta requiere al menos Node v8

 npm install --global --production npm-windows-upgrade npm-windows-upgrade

¿Quiere simplemente instalar la última versión? Por supuesto:

 npm-windows-upgrade --npm-version latest

Ahora puede seleccionar la versión que desea instalar desde la línea de comandos.

https://github.com/felixrieseberg/npm-windows-upgrade

El enlace de arriba es la herramienta que he usado. Esta herramienta es tanto para Linux como para Windows. Espero que ayude.

over 4 years ago · Santiago Trujillo Relatório

0

Por lo que puedo ver, los documentos de npm dicen que npm v6 funcionará con archivos de bloqueo de la versión 2 a pesar de la advertencia, por lo que no necesita hacer ninguna de las cosas sugeridas en la respuesta aceptada y puede ignorar con seguridad el mensaje de advertencia.

En las notas de lanzamiento de npm 7 dijeron:

Un cambio a tener en cuenta es el nuevo formato de archivo de bloqueo, que es retrocompatible con los usuarios de npm 6. El archivo de bloqueo v2 desbloquea la capacidad de hacer compilaciones deterministas y reproducibles para producir un árbol de paquetes.

En los documentos de npm dice (mi énfasis):

lockfileVersion

Una versión entera, comenzando en 1 con el número de versión de este documento cuya semántica se usó al generar este paquete-lock.json.

Tenga en cuenta que el formato de archivo cambió significativamente en npm v7 para rastrear información que, de otro modo, habría requerido buscar en node_modules o en el registro de npm. Los archivos de bloqueo generados por npm v7 contendrán lockfileVersion: 2.

  • No se proporcionó una versión: un archivo de ajuste "antiguo" de una versión de npm anterior a npm v5.
  • 1: La versión del archivo de bloqueo utilizada por npm v5 y v6.
  • 2: La versión del archivo de bloqueo utilizada por npm v7, que es compatible con versiones anteriores de los archivos de bloqueo v1.
  • 3: La versión del archivo de bloqueo utilizada por npm v7, sin posibilidades de compatibilidad con versiones anteriores. Esto se usa para el archivo de bloqueo oculto en node_modules/.package-lock.json, y probablemente se usará en una versión futura de npm, una vez que la compatibilidad con npm v6 ya no sea relevante .

Es por eso que pueden actualizar automáticamente los archivos de bloqueo de v1 a v2, que mencionas, sin romper nada.

over 4 years ago · Santiago Trujillo Relatório

0

¿Hay alguna forma de especificar que las versiones más nuevas de npm solo usen "lockfileVersion": 1 ? ¿O solo tenemos que obtener todos los desarrolladores en la misma versión de npm ?

Le aconsejaré fijar la versión de Node/NPM y alinearla en sus entornos (desarrollo, puesta en escena y producción).

puede aprovechar nvm para administrar la versión del nodo agregando a su proyecto el archivo .nvmrc (no olvide almacenarlo en su control de código fuente).

por ejemplo, .nvmrc se verá así:

 $ cat .nvmrc 14.15.0

luego, puede usar nvm install && nvm use para usar la versión anclada de Node.

NPM también admiteengines :

Puede especificar la versión del nodo en el que funcionan sus cosas:

{ "engines" : { "node" : ">=0.10.3 <0.12" } }

Y, al igual que con las dependencias, si no especifica la versión (o si especifica "*" como la versión), cualquier versión de Node servirá.

Si especifica un campo de "motores", entonces npm requerirá que el "nodo" esté en algún lugar de esa lista. Si se omite "motores", entonces npm simplemente asumirá que funciona en Node.

También puede usar el campo "motores" para especificar qué versiones de npm son capaces de instalar correctamente su programa. Por ejemplo:

{ "engines" : { "npm" : "~1.0.20" } }

A menos que el usuario haya configurado el indicador de configuración estricta del motor, este campo es solo de asesoramiento y solo generará advertencias cuando su paquete se instale como una dependencia.

Otro enfoque es utilizar un contenedor Docker como entorno de tiempo de ejecución para el desarrollo y la ejecución, lo que implica que no necesita instalar Node ni NPM. p.ej

 $ mkdir my-project $ cd my-project $ docker run --rm -it -v $PWD:/app --entrypoint /bin/bash --workdir /app node:14.15.0 root@4da6ee3c2ac0:/app# npm init -y Wrote to /app/package.json: { "name": "app", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" } root@4da6ee3c2ac0:/app# npm install npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN app@1.0.0 No description npm WARN app@1.0.0 No repository field. up to date in 1.694s found 0 vulnerabilities root@4da6ee3c2ac0:/app# exit exit $ ls -x1 package-lock.json package.json

Como puedes ver, sin Node, ni NPM:

  1. Creó un nuevo directorio para un nuevo proyecto.
  2. Hizo girar un contenedor Node Docker, que viene con Node y NPM
  3. Creó un nuevo proyecto ( npm init -y )
  4. Salió del contenedor Docker
  5. Enumeró los archivos dentro del directorio de trabajo, donde se hizo girar el contenedor

Dado que el comando de docker run anterior es largo, es posible que desee aprovechar docker-compose para un flujo de trabajo más optimizado.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda