电光石火电光石火

陌晴博客
ilkhome.cn

Vue 中使用 jQuery

编译报错:$ is undefined or no-undef '$' is not defined,

假设你已经使用vue-cli搭建好了开发的脚手架,接下来,看下面。。。

NPM 安装 jQuery,项目根目录下运行以下代码
npm install jquery --save
webpack配置
在项目根目录下的build目录下找到webpack.base.conf.js文件,在开头使用以下代码引入webpack,因为该文件默认没有引用,
var webpack = require('webpack')
然后在module.exports中添加一段代码,

// 原有代码
resolve: {
  extensions: ['.js', '.vue', '.json'],
  alias: {
    'vue$': 'vue/dist/vue.esm.js',
    '@': resolve('src')
  }
},
// 添加代码
plugins: [
  new webpack.ProvidePlugin({
    $: "jquery",
    jQuery: "jquery",
    jquery: "jquery",
    "window.jQuery": "jquery"
  })
],
// 原有代码
module: {
  rules: [
    // ......
  ]
}
然后许多其他解决办法到此就说在main.js里导入就可以了,然而题主照着做了。
main.js里导入jQuery

import 'jquery'
在Vue组件里使用 $ or jQuery 写了操作dom的代码
接着启动项目

npm run dev
但是编译却报错了:

http://eslint.org/docs/rules/no-undef '$' is not defined or
http://eslint.org/docs/rules/no-undef 'jQuery' is not defined
咋回事呢???

eslint 检查
机智的朋友肯定想到跟eslint有关,没错,这时候需要做的下一步就是要修改根目录下.eslintrc.js文件了,在改文件的module.exports中,为env添加一个键值对 jquery: true 就可以了,也就是:
env: {
  // 原有
  browser: true,
  // 添加
  jquery: true
}
再次 npm run dev ,OK了,没报错,赶紧去组件里试一下吧,console.log($('选择器')) ,你会发现成功使用jQuery获取到了DOM。

本博客所有文章如无特别注明均为原创。作者:陌晴
版权所有:《电光石火》 => Vue 中使用 jQuery
本文地址:http://ilkhome.cn/index.php/archives/384/
欢迎转载!复制或转载请以超链接形式注明,文章为 陌晴 原创,并注明原文地址 Vue 中使用 jQuery,谢谢。

评论