问题
I'm currently trying to add Jquery to my vue-cli
project. I am aware of the missbehaviour it can produce, but anyway; Since there is no build/webpack.base.conf.js
anymore I tried editing vue.config.js
by adding:
module.exports {
...
chainWebpack: config => {
config.plugin('define').tap(definitions => {
definitions[0] = Object.assign(definitions[0], {
$: 'jquery',
jquery: 'jquery',
'window.jQuery': 'jquery',
jQuery: 'jquery',
_: 'lodash'
})
return definitions
})
}
...
}
or
const webpack = require('webpack')
module.exports {
...
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
jquery: 'jquery',
'window.jQuery': 'jquery',
jQuery: 'jquery'
})
]
...
}
Both options don't seem to work. With #1 nothing seems to happen, with #2 I get the compile error; "plugins" is not allowed or 'ProvidePlugin' is unresolved and when I try to import jQuery directly in main.js and define the $ operator, jquery stays undefinded when I try to use it.
Big thank you in advance!
回答1:
Solved it by adding to main.js
window.$ = window.jQuery = require('jquery');
That did it for me and jQuery is now available globally.
Another approach would be;
Vue.use({
install: function(Vue, options){
Vue.prototype.$jQuery = require('jquery'); // you'll have this.$jQuery anywhere in your vue project
}
})
I hope this will help someone stumbling over the same problem in the future. If you still can't figure it out, check this question or have a look at the documentation.
edit: make sure you ran npm install jquery
before.
回答2:
#2 You forget to add configureWebpack into vue.config.js
const webpack = require('webpack')
module.exports = {
configureWebpack: {
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
jquery: 'jquery',
'window.jQuery': 'jquery',
jQuery: 'jquery'
})
]
},
}
回答3:
I did it by following steps:
first install jquery
npm install jquery --save-dev
in any component or view:
<script>
import jQuery from "jquery";
const $ = jQuery;
window.$ = $;
....
....
....
or as above answer, both are same:
window.$ = window.jQuery = require("jquery");
now you can use anywhere in the page, for globally availability, simply follow the above said answer.
来源:https://stackoverflow.com/questions/53355086/add-jquery-to-vue-cli-3