Javascript Vue+;summernote=TypeError:$(…)。summernote不是函数

Javascript Vue+;summernote=TypeError:$(…)。summernote不是函数,javascript,summernote,Javascript,Summernote,在summernote中获取此错误 TypeError:$(…)。summernote不是函数 App.vue <template> <div id="app"> <textarea name="editor" id="editor" v-model="text"></textarea> </div> </template> <script>

在summernote中获取此错误

TypeError:$(…)。summernote不是函数

App.vue

  <template>
      <div id="app">
        <textarea name="editor" id="editor" v-model="text"></textarea>
      </div>
    </template>

    <script>
    export default {
      name: 'app',
      data () {
        return {
          text: 'test'
        }
      },
      mounted: function(){
        $('#editor').summernote()
      }
    }
    </script>
index.html

  <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8">
        <title>test-app</title>
      </head>
      <body>
        <div id="app"></div>
        <script src="/dist/build.js"></script>
      </body>
    </html>

有必要删除summernote数据包中带有jQuery的文件夹“node modules”。因为它创建了两个对象Jquery

  import Vue from 'vue'
    import App from './App.vue'
    import 'bootstrap/dist/css/bootstrap.css'
    import 'summernote/dist/summernote.css'
    import 'bootstrap'
    import 'summernote'

    new Vue({
      el: '#app',
      render: h => h(App)
    })
  <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8">
        <title>test-app</title>
      </head>
      <body>
        <div id="app"></div>
        <script src="/dist/build.js"></script>
      </body>
    </html>
  var path = require('path')
    var webpack = require('webpack')

    module.exports = {
      entry: './src/main.js',
      output: {
        path: path.resolve(__dirname, './dist'),
        publicPath: '/dist/',
        filename: 'build.js'
      },
      module: {
        rules: [
          {
            test: /\.vue$/,
            loader: 'vue-loader',
            options: {
              loaders: {
                'scss': 'vue-style-loader!css-loader!sass-loader',
                'sass': 'vue-style-loader!css-loader!sass-loader?indentedSyntax'
              }
            }
          },
          {
            test: /\.js$/,
            loader: 'babel-loader',
            exclude: /node_modules/
          },
          {
            test: /\.(eot|svg|ttf|woff|woff2)(\?\S*)?$/,
            loader: 'file-loader'
          },
          {
            test: /\.(png|jpg|gif|svg)$/,
            loader: 'file-loader',
            options: {
              name: 'picture/[name].[ext]?[hash]',
            }
          },
          {
            test: /\.css$/,
            loader: 'vue-style-loader!css-loader!sass-loader'
          }
        ]
      },
      resolve: {
        alias: {
          'vue$': 'vue/dist/vue.esm.js'
        }
      },
      devServer: {
        historyApiFallback: true,
        noInfo: true
      },
      performance: {
        hints: false
      },
      devtool: '#eval-source-map',
      plugins: [
        new webpack.ProvidePlugin({
          $: 'jquery',
          jQuery: 'jquery',
          jquery: 'jquery'
        })
      ]
    }