zoukankan      html  css  js  c++  java
  • vue 全局引用jq(打包后可能会遇到的问题)

    问题描述:全局引用jquery打包到线上可能会不好使。

    第一步:

    var path = require('path')
    var webpack = require('webpack')
    
    function resolve(dir) {
      return path.join(__dirname, '..', dir)
    }
    module.exports = {
      entry: './src/main.js',
      externals: {
        'BMap': 'BMap',
        // 'BMap_Symbol_SHAPE_POINT': 'BMap_Symbol_SHAPE_POINT'
      },
      output: {
        path: path.resolve(__dirname, './dist'),
        publicPath: '/dist/',
        filename: 'build.js'
      },
      module: {
        rules: [
          {
            test: /.css$/,
            use: [
              'vue-style-loader',
              'css-loader'
            ],
          },      {
            test: /.vue$/,
            loader: 'vue-loader',
            options: {
              loaders: {
              }
              // other vue-loader options go here
            }
          },
          {
            test: /.js$/,
            loader: 'babel-loader',
            // include: [resolve('src'), resolve('test'),resolve('/node_modules/swiper/dist')]
            // include: [path.resolve('src'), path.resolve('test'),path.resolve('node_modules/bootstrap-vue/lib')],
            exclude: /node_modules/
          },
          {
            test: /.(png|jpg|gif|svg)$/,
            loader: 'file-loader',
            options: {
              name: '[name].[ext]?[hash]'
            }
          }
        ]
      },
      plugins: [ 
        new webpack.ProvidePlugin({ 
              $:"jquery", 
              jQuery:"jquery", 
             "window.jQuery":"jquery",
     }) 
    ], 
      resolve: {
        alias: {
          'vue$': 'vue/dist/vue.esm.js',
          // '@': resolves('src'),
          '@': path.resolve('src'),
          'swiper': 'swiper/dist/js/swiper.js',
        },
        extensions: ['*', '.js', '.vue', '.json']
      },
      devServer: {
        historyApiFallback: true,
        noInfo: true,
        overlay: true,
      },
      performance: {
        hints: false
      },
      devtool: '#eval-source-map'
    }
    
    if (process.env.NODE_ENV === 'production') {
      module.exports.devtool = '#source-map'
      // http://vue-loader.vuejs.org/en/workflow/production.html
      module.exports.plugins = (module.exports.plugins || []).concat([
        new webpack.DefinePlugin({
          'process.env': {
            NODE_ENV: '"production"'
          }
        }),
        new webpack.optimize.UglifyJsPlugin({
          sourceMap: true,
          compress: {
            warnings: false
          }
        }),
        new webpack.LoaderOptionsPlugin({
          minimize: true
        }),
        new webpack.ProvidePlugin({ 
          $:"jquery", 
          jQuery:"jquery", 
         "window.jQuery":"jquery",
        }) 
      ])
    }
    View Code

    第二部:在main.js里

    import $ from 'jquery';

    解决问题:出现这个问题是只在plugins:里引入了没有在打包时候引用,要在生产环境里加上

    new webpack.ProvidePlugin({ 
          $:"jquery", 
          jQuery:"jquery", 
         "window.jQuery":"jquery",
        }) 
  • 相关阅读:
    maven 常用命令
    navicat 破解
    linux命令
    Git常用命令
    关于近期工作的总结
    ES6新特性学习
    Hadoop初步学习
    串行、并行与并发的理解
    通过Spring profile方式实现多环境部署
    使用MySQL乐观锁解决超卖问题
  • 原文地址:https://www.cnblogs.com/lst619247/p/11277173.html
Copyright © 2011-2022 走看看