vue项目怎么全局引入jquery
Posted 野猪佩奇007
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue项目怎么全局引入jquery相关的知识,希望对你有一定的参考价值。
项目场景:
vue项目怎么引入jquery 使用jq的时候报错$ is not defined
在main.js中引入后,组件内使用$报$未定义,只有在组件中import $ from 'jquery'才可以太麻烦
配置都可以的直接看解决方案,没配置的从头来
首先看有无配置webpack
package.json里面搜索webpack,没用的话安装
webpack npm install webpack --save-dev(在本地安装)
配置的有weibpack,但是没有webpack.base.conf文件
先在根目录创建build目录,目录下新建webpack.base.conf.js文件
文件内容:
'use strict'
const path = require('path')
const utils = require('./utils')
const config = require('../config')
const vueLoaderConfig = require('./vue-loader.conf')
const webpack = require('webpack') //这里引入webpack
function resolve (dir) {
return path.join(__dirname, '..', dir)
}
module.exports = {
context: path.resolve(__dirname, '../'),
entry: {
app: './src/main.js'
},
output: {
path: config.build.assetsRoot,
filename: '[name].js',
publicPath: process.env.NODE_ENV === 'production'
? config.build.assetsPublicPath
: config.dev.assetsPublicPath
},
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
// 如果是自己下载的jq文件,则用下面方式修改为存放目录
// 'jquery': path.resolve(__dirname, '../src/assets/libs/jquery/jquery.min'),
// 如果使用NPM安装的jQuery,则直接引入即可
'jquery': 'jquery'
}
},
module: {
rules: [
{
test: /\\.vue$/,
loader: 'vue-loader',
options: vueLoaderConfig
},
{
test: /\\.js$/,
loader: 'babel-loader',
include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]
},
{
test: /\\.(png|jpe?g|gif|svg)(\\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('img/[name].[hash:7].[ext]')
}
},
{
test: /\\.(mp4|webm|ogg|mp3|wav|flac|aac)(\\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('media/[name].[hash:7].[ext]')
}
},
{
test: /\\.(woff2?|eot|ttf|otf)(\\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
}
}
]
},
node: {
// prevent webpack from injecting useless setImmediate polyfill because Vue
// source contains it (although only uses it if it's native).
setImmediate: false,
// prevent webpack from injecting mocks to Node native modules
// that does not make sense for the client
dgram: 'empty',
fs: 'empty',
net: 'empty',
tls: 'empty',
child_process: 'empty'
},
//在最后添加一个plugins配置
plugins: [
new webpack.optimize.CommonsChunkPlugin('common.js'),
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
})
],
}
# 原因分析: 原因是没有引入
解决方案:
先配置jq,
npm 安装 npm install jquery --save-dev
然后 main.js里面
import $ from ‘jquery’
window.jquery = window.$ = $
这样全局配置就好了
其他页面无需再次引入
以上是关于vue项目怎么全局引入jquery的主要内容,如果未能解决你的问题,请参考以下文章