Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

146
Vistas
Sobrescribir un complemento JS existente en Shopware 6

Actualmente estoy tratando de sobrescribir un archivo javascript de un complemento existente.

He estado siguiendo la documentación , pero tengo problemas con la ruta para que la clase JS sobrescriba.

En los documentos hay un código de ejemplo:

 import CookiePermissionPlugin from 'src/plugin/cookie/cookie-permission.plugin'; export default class MyCookiePermission extends CookiePermissionPlugin { }

Así que implementé el siguiente código:

 import QuantityField from 'src/plugin/FilterRangeSlider/filter-range-slider.plugin'; export default class ExampleQuantityField extends QuantityField {

Este código no me funciona, ya que el archivo original está en el directorio del proveedor y mi complemento está en el directorio personalizado. Cuando intento compilar (por ejemplo bin/build-storefront.sh ), recibo el siguiente mensaje de error:

Módulo no encontrado: Error: No se puede resolver 'src/plugin/FilterRangeSlider/filter-range-slider.plugin' en '<raíz del proyecto>/custom/plugins/ExampleProductFilter/src/Resources/app/storefront/src/filter- deslizador de rango'

¿Alguna idea de cómo puedo importar esa clase como se indica en los documentos?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Node.js proporciona un montón de funcionalidades de sistema de archivos integradas. El __dirname apunta al directorio raíz.

Entonces, esto debería funcionar.

 import QuantityField from `${__dirname}/vendor/store.shopware.com/mmeesrangesliderpro/src/Resources/app/storefront/src/script/filter-range-slider.plugin`
about 4 years ago · Juan Pablo Isaza Denunciar

0

Mi solución actual no es realmente limpia...

 import QuantityField from '../../../../../../../../../vendor/store.shopware.com/mmeesrangesliderpro/src/Resources/app/storefront/src/script/filter-range-slider.plugin';

¿No hay ninguna variable raíz de complemento o algo similar?

about 4 years ago · Juan Pablo Isaza Denunciar

0

Creo que no hay una manera más fácil de lograr esto.

Si cada complemento extendiera la configuración del paquete web como se describe en

https://developer.shopware.com/docs/guides/plugins/plugins/administration/extending-webpack

 const path = require('path'); module.exports = () => { return { resolve: { alias: { MmeesRangeSliderPro: path.join(__dirname, '..', 'src') } } }; };

El alias podría usarse en lugar de la raíz del complemento.

Pero este no es el caso, por lo que lo siguiente no funciona:

 import QuantityField from 'MmeesRangeSliderPro/plugin/FilterRangeSlider/filter-range-slider.plugin';

Puede agregar un console.log(webpackConfig) al final de Resources/app/storefront/webpack.config.js para validar esto.

 alias: { src: '/home/user/example/projects/example.de/vendor/shopware/storefront/Resources/app/storefront/src', assets: '/home/user/example/projects/example.de/vendor/shopware/storefront/Resources/app/storefront/assets', jquery: 'jquery/dist/jquery.slim', scss: '/home/user/example/projects/example.de/vendor/shopware/storefront/Resources/app/storefront/src/scss', vendor: '/home/user/example/projects/example.de/vendor/shopware/storefront/Resources/app/storefront/vendor' }

Y esos nuevamente para no permitir realmente ubicar el módulo.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda