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",
        }) 
  • 相关阅读:
    初尝2D骨骼动画编辑工具SPINE,并into Unity3D
    Unity3D优化总结(一)
    ARPG游戏打击感相关的技术简单总结
    总结一下一般游戏中3D模型各种勾边方法遇到的工程性问题
    多次被坑了后,重温设计模式原则
    unity shader序列帧动画代码,顺便吐槽一下unity shader系统
    暗黑三泛光算法研究
    《全民无双》锁链刀光程序生成算法,即U3D——刀光轨迹插件的改进
    Low-level Thinking in High-level Shading Languages
    python实现智能语音天气预报
  • 原文地址:https://www.cnblogs.com/lst619247/p/11277173.html
Copyright © 2011-2022 走看看