vue usar plugin inside component cli jquery jquery-plugins webpack vue.js

usar - vue cli jquery plugin



Cómo usar un plugin jQuery dentro de Vue (5)

Estoy construyendo una aplicación web dentro de VueJS pero encuentro un problema. Quiero usar una extensión jQuery (cropit para ser específica) pero no sé cómo instanciar / requerir / importar de la manera correcta sin obtener errores.

Estoy usando la herramienta CLI oficial y la plantilla de webpack para mi aplicación.

Incluí jQuery así en mi archivo main.js:

import jQuery from ''jQuery'' window.jQuery = jQuery

Ahora estoy construyendo un componente de editor de imágenes donde quiero crear instancias de este modo:

export default { ready () { $(document).ready(function ($) { $(''#image-cropper-wrapper-element'').cropit({ /* options */ }) }) }, }

Pero sigo recibiendo errores ... ¿Ahora mi pregunta es cómo instanciar adecuadamente jQuery y los complementos a través de NPM / Webpack / Vue?

¡Gracias por adelantado!


Debe usar el cargador global o el cargador de expose para asegurarse de que el paquete web incluya jQuery lib en la salida del código fuente y para que no genere errores cuando utilice $ en sus componentes.

// example with expose loader: npm i --save-dev expose-loader // somewhere, import (require) this jquery, but pipe it through the expose loader require(''expose?$!expose?jQuery!jquery'')

Si lo prefiere, puede importarlo (requerirlo) directamente dentro de la configuración de su paquete web como punto de entrada, así que lo entiendo, pero no tengo un ejemplo de esto a mano.

Alternativamente, puede usar el cargador de Global como este: https://www.npmjs.com/package/globals-loader


Lo uso así:

import jQuery from ''jQuery'' ready: function() { var self = this; jQuery(window).resize(function () { self.$refs.thisherechart.drawChart(); }) },


Primero instala jquery usando npm,

npm install jquery --save

Yo suelo:

global.jQuery = require(''jquery''); var $ = global.jQuery; widows.$ = $;


Supongamos que tiene un proyecto Vue creado con vue-cli (por ejemplo, vue init webpack my-project). Ir al directorio del proyecto y ejecutar

npm install jquery --save-dev

Abra el archivo build/webpack.base.conf.js y agregue plugins :

module.exports = { plugins: [ new webpack.ProvidePlugin({ $: ''jquery'', jquery: ''jquery'', ''window.jQuery'': ''jquery'', jQuery: ''jquery'' }) ] ... }

También en la parte superior del archivo, agregue:

const webpack = require(''webpack'')

Si está utilizando ESLint, abra .eslintrc.js y agregue los siguientes elementos globales: {

module.exports = { globals: { "$": true, "jQuery": true }, ...

Ahora estás listo para ir. Usa $ en cualquier lugar en tu js.

NOTA No es necesario que incluya expose loader ni ningún otro miembro del personal para usar esto.

Originalmente desde https://maketips.net/tip/223/how-to-include-jquery-into-vuejs


Opción # 1: Use ProvidePlugin

Agregue ProvidePlugin a la matriz de complementos en build/webpack.dev.conf.js y build/webpack.prod.conf.js para que jQuery esté disponible globalmente para todos sus módulos:

plugins: [ // ... new webpack.ProvidePlugin({ $: ''jquery'', jquery: ''jquery'', ''window.jQuery'': ''jquery'', jQuery: ''jquery'' }) ]

Opción n. ° 2: use el módulo Expose Loader para el paquete web

Como @TremendusApps sugiere en su respuesta, agregue el paquete Expose Loader :

npm install expose-loader --save-dev

Use en su punto de entrada main.js esta manera:

import ''expose?$!expose?jQuery!jquery'' // ...