如何在vuejs Webpack CLI项目中包含jQuery?

Mor*_*sis 3 javascript jquery webpack vue.js

您好,我曾经使用vuejs cli生成项目(https://github.com/vuejs/vue-cli)。cli使用webpack,在vue文件内部使用jquery时遇到问题。我总是得到一个。

http://eslint.org/docs/rules/no-undef  '$' is not defined
Run Code Online (Sandbox Code Playgroud)

我尝试编辑我的webpack.dev.config以包括如下所示的provider插件块:

var utils = require('./utils')
var webpack = require('webpack')
var config = require('../config')
var merge = require('webpack-merge')
var baseWebpackConfig = require('./webpack.base.conf')
var HtmlWebpackPlugin = require('html-webpack-plugin')
var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')

// add hot-reload related code to entry chunks
Object.keys(baseWebpackConfig.entry).forEach(function (name) {
  baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name])
})

module.exports = merge(baseWebpackConfig, {
  module: {
    rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })
  },
  // cheap-module-eval-source-map is faster for development
  devtool: '#cheap-module-eval-source-map',
  plugins: [
    new webpack.DefinePlugin({
      'process.env': config.dev.env
    }),
    // https://github.com/glenjamin/webpack-hot-middleware#installation--usage
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoEmitOnErrorsPlugin(),
    // https://github.com/ampedandwired/html-webpack-plugin
    new HtmlWebpackPlugin({
      filename: 'index.html',
      template: 'index.html',
      inject: true
    }),
    new FriendlyErrorsPlugin(),
    new webpack.ProvidePlugin({
      $ : "jquery",
      jQuery : "jquery"
    })
  ]
})
Run Code Online (Sandbox Code Playgroud)

但是,当尝试使用jquery时,我一次又一次遇到相同的问题。我不反对为此使用CDN,我真的不能让这个想法包括jQuery,无论我尝试什么。

如果vue文件是有用的,我会尝试在脚本块中这样console.log $

<script>
export default {
  name: 'how_can_we_help_you',
  data () {
    return {
      msg: 'Welcome to Your Vue.js App'
    }
  }
}
console.log($)
</script>
Run Code Online (Sandbox Code Playgroud)

请帮助即时通讯非常困难,并且已经尝试修复此问题。提前致谢。

Joh*_*ohn 9

进入main.js并执行

window.$ = window.jQuery = require('jquery')
Run Code Online (Sandbox Code Playgroud)

要么

Vue.use({
    install: function(Vue, options){
        Vue.prototype.$jQuery = require('jquery'); // you'll have this.$jQuery anywhere in your vue project
    }
})
Run Code Online (Sandbox Code Playgroud)


Mor*_*sis 5

经过两天的搜寻。它的eslintrc.js

将其添加到以下内容中,它将修复provider插件。

env: {
  browser: true,
  jquery: true
},
Run Code Online (Sandbox Code Playgroud)