转自 作者:Yann001
报错:$ is undefined or no-undef '$' is not defined
假设你已经使用vue-cli搭建好了开发的脚手架,接下来,看下面。。。
NPM 安装 jQuery,项目根目录下运行以下代码
npm install jquery --save
webpack配置
在项目根目录下的build目录下找到webpack.base.conf.js文件,在开头使用以下代码引入webpack,因为该文件默认没有引用,
varwebpack =require('webpack')
然后在module.exports中添加一段代码,
// 原有代码resolve: { extensions: ['.js','.vue','.json'], alias: {'vue$':'vue/dist/vue.esm.js','@': resolve('src') } },// 添加代码plugins: [newwebpack.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 orhttp://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。