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的主要内容,如果未能解决你的问题,请参考以下文章

vue/cli4.4.0 中如何全局使用jquery?

vue 中引入使用jquery

VUE项目引入jquery

在vue项目中正确的引入jquery

vue工程化之项目引入jquery

webpack jquery已经全局引入 为啥还是提示$未定义