如何在vuejs webpack cli项目中包含jquery?

时间:2017-06-12 10:13:21

标签: javascript jquery webpack vue.js

你好我曾经在vuejs cli生成一个项目(https://github.com/vuejs/vue-cli)。 cli使用webpack,我在vue文件中使用jquery时遇到了麻烦。我总是得到一个。

SELECT * FROM `issues` WHERE deadline = DATE(NOW() + INTERVAL 5 DAY)

我已经尝试编辑我的webpack.dev.config以包含提供插件块,如下所示:

http://eslint.org/docs/rules/no-undef  '$' is not defined

然而,当尝试使用jquery时,我会一次又一次地遇到同样的问题。我不反对使用cdn这个我真的不能让我认为包括jquery无论我尝试什么。

如果vue文件有用,我会在脚本块

中尝试console.log $
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"
    })
  ]
})

请帮助我非常卡住,并一直试图修复这个非常诡计。提前谢谢。

4 个答案:

答案 0 :(得分:6)

进入main.js并执行

window.$ = window.jQuery = require('jquery')

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

答案 1 :(得分:4)

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

将此添加到以下内容,它将修复提供插件。

env: {
  browser: true,
  jquery: true
},

答案 2 :(得分:1)

对于不使用webpack的用户,另一种方法是使用暴露加载器:

yarn add expose-loader

和您main.js中的

import "expose-loader?$!jquery";

答案 3 :(得分:0)

我找到了解决方案。我将更改放在webpack.dev.conf.js而不是webpack.dev.config和eslintrc.json而不是eslintrc.js。