Vue introduce el uso del paquete de parches para parchear las dependencias (tome el problema de la ruta [hash].worker.js después de modificar el paquete vue-pdf como ejemplo)

1. Introducción al paquete de parches

paquete de parches dirección npm
paquete de parches documentación de github

npm i patch-package

Si no necesita ejecutar npm en producción (por ejemplo, si está creando una interfaz web, puede usar --save dev)

1.2 Cómo usar

Para hacer un parche,
primero cambie un archivo para un paquete específico en la carpeta node_modules, luego ejecute

yarn patch-package package-name

o use npx (npm > 5.2)

npx patch-package package-name

nombre-paquete coincide con el nombre del paquete que se está cambiando;

Si es la primera vez que usa el paquete de parches, se creará una carpeta llamada parches en el directorio raíz de la aplicación. Dentro habrá un archivo llamado algo así como nombre del paquete+0.44.0.patch, que es la diferencia entre el nombre del paquete antiguo y la versión fija. Envíe esto para compartir la corrección con su equipo.

opcional describir
–crear-problema Para los paquetes cuyo código fuente está alojado en GitHub, esta opción abre un navegador web con problemas de borrador basados ​​en diferencias.
–usar-hilo De forma predeterminada, los paquetes de parches verifican si usar npm o yarn según el archivo de bloqueo que tengan. Si tiene ambos, npm se usa de forma predeterminada. Establezca esta opción para anular ese valor predeterminado y siempre use hilo.
–excluir < expresión regular > Las rutas que coinciden con la expresión regular se ignoran al crear archivos de parche. Las rutas son relativas al directorio raíz del paquete que se está parcheando. Predeterminado: paquete\.json$
–include < expresión regular > Solo se tienen en cuenta las rutas que coinciden con la expresión regular al crear archivos de parche. Las rutas son relativas al directorio raíz del paquete que se está parcheando. Valores predeterminados:*.
–filtrado de ruta de acceso sensible a mayúsculas y minúsculas Haga que las expresiones regulares utilizadas en los filtros --include o --exclude distingan entre mayúsculas y minúsculas.
–parche-dir Especifica el nombre del directorio donde se colocarán los archivos de revisión.

Paquetes anidados
Si intenta parchear un paquete en un lugar específico como: node_modules/package/node_modules/another package, simplemente coloque un / entre el nombre del paquete:

npx patch-package package/another-package

También funciona con paquetes con ámbito.

npx patch-package @my/package/@my/other-package

2. Modifique la ruta de [hash].worker.js después de empaquetar vue-pdf

Nota: La versión de vue-pdf en este artículo es ^4.3.0; la
ruta de empaquetado predeterminada de [hash].worker.js en el complemento vue-pdf está en el directorio raíz dist. Debido al sistema de implementación del proyecto, [ hash].worker.js en el directorio dist/static/js.
2.1 Modifique el archivo
Ingrese al directorio node_modules/worker-loader/dist/index.js para encontrar

const filename = _loaderUtils2.default.interpolateName(this, options.name || '[hash].worker.js', {
    
     …… });

inserte la descripción de la imagen aquí
cambie a

const filename = _loaderUtils2.default.interpolateName(this, options.name || 'static/js/[hash].worker.js', {
    
     …… });

inserte la descripción de la imagen aquí
2.2 Instalar el complemento

npm i patch-package --save-dev
npm i postinstall-postinstall --save-dev

2.3 Crear un parche

npx patch-package worker-loader

Después de la ejecución, se creará un archivo llamado worker-loader+2.0.0.patch en el directorio de parches en el directorio raíz del proyecto. Después de enviar el archivo del parche, el parche se puede aplicar más tarde.
inserte la descripción de la imagen aquí

2.4 Agregar comando

Agregue "postinstall": "patch-package" a las secuencias de comandos de package.json, y cuando se ejecute el comando npm install o yarn install más tarde, el paquete dependiente se parcheará automáticamente.

"scripts": {
    
    
  "postinstall": "patch-package"
}

2.5 Precauciones

  • La versión del paquete dependiente que se va a modificar es preferiblemente fija, es decir, la versión no se actualizará automáticamente, para evitar la falla del paquete de parches después de la actualización automática, de modo que la falla del paquete afecte la función original;
  • Los estudiantes de desarrollo colaborativo necesitan reinstalar las dependencias;

Portal: número de versión detallado en package.json

Supongo que te gusta

Origin blog.csdn.net/ZYS10000/article/details/130448923
Recomendado
Clasificación