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",
    })
  ])
}

第二部:在main.js里

import $ from ‘jquery‘;

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

new webpack.ProvidePlugin({
      $:"jquery",
      jQuery:"jquery",
     "window.jQuery":"jquery",
    }) 

原文地址:https://www.cnblogs.com/lst619247/p/11277173.html

时间: 2024-08-29 23:10:18

vue 全局引用jq(打包后可能会遇到的问题)的相关文章

vue.js - 解决vue-cli打包后自动压缩代码

当我们用vue脚手架做完项目后,npm run build打包之后, 有没有查看源码,全是压缩好的.但是我就不想让它压缩,该怎么办呢? 困惑了几天,查了各种资料.终于终于... 来,上干货: 首先,我们得了解一点点webpack的知识. webpack中压缩js 的插件叫 uglifyjs-webpack-plugin, 压缩css 的插件叫 optimize-css-assets-webpack-plugin 然后我们找到/build/webpack.prod.conf.js 文件, 然后你会

记录下自己VUE项目用Hbuider打包后启动白屏问题

刚用VUE做项目,之前测试时vue创建的自身项目打包都是启动OK没问题.今天打包自己的时,启动一直白屏.折磨了好久,百度了一堆.终于找到了方法. 首先是在config/index.js里面 build: { // Template for index.html index: path.resolve(__dirname, '../dist/index.html'), // Paths assetsRoot: path.resolve(__dirname, '../dist'), assetsSu

Vue路由History模式打包后页面空白,刷新404

项目的入口文件index.html直接在服务器访问地址的根目录下,即项目独占一个端口 vue中配置保持不变 nginx中配置如下: server { listen 8899; server_name localhost; location / { try_files $uri $uri/ /index.html; } } 第二种就是 # 打包配置 config-index.js 修改路径: assetsPublicPath: './'; # 前端路由配置 router.js: const rou

vue项目用webpack打包后运行后找不到.ttf及.woff文件

webpack.base.config 文件中 修改前: { test: /\.css$/, use: ExtractTextPlugin.extract({ use: ['css-loader?minimize', 'autoprefixer-loader'],fallback: 'style-loader' }) }, { test: /\.less$/, use: ExtractTextPlugin.extract({ use: ['css-loader?minimize','autopr

解决vue-cli webpack打包后加载资源的路径问题

vue项目,访问打包后的项目,输入路径后,页面加载空白.这时会有两类问题,都是路径问题. 1.一个是css,js,ico等文件加载不到,是目录里少了dist 打开页面时一片空白 解决办法: 前端精品教程:百度网盘下载 config/index.js文件的build->assetsPublicPath的默认值改为 './' assetsPublicPath:资源的根目录.这个是通过http服务器运行的url路径.因为webapp和static中间还有层dist,所以要用'./' 2.另一个就是单纯

在vue项目npm run build后,index.html中引入css和js 报MIME type问题

问题: 1.在vue项目中,build打包后,index页面打开会报错, MIME type ('text/html') ;报错内容:because its MIME type ('text/html') is not a supported stylesheet MIME type2.控制台报错:报错内容:http://127.0.0.1:5500/static/css/app.04f46711e76646577281177c721d6432.css 这个地址Cannot GET 解决思路:

如何在Vue中建立全局引用或者全局命令

1 一般在vue中,有很多vue组件,这些组件每个都是一个文件.都可能需要引用到到相同模块.我们不想每个文件都import 一次模块. 如果是vue编写的插件我们可以用 Vue.use(...) 2 但是如果想添加一个全局命令,同时又让每个vue的文件都能用到怎么办? 第一步:最好建立一个全局的命令文件例如:directive/directive.js 第二步:利用Vue.directive()建立一个全局命令,并将它暴露出来,例如一个focus 让表单自动聚焦 第三部步:在main.js(入口

vue的全局引用

1 一般在vue中,有很多vue组件,这些组件每个都是一个文件.都可能需要引用到相同模块(或者插件).我们不想每个文件都import 一次模块. 如果是基于vue.js编写的插件我们可以用 Vue.use(...) main.js 2 但是如果想添加一个全局命令,同时又让每个vue的文件都能用到怎么办? 第一步:最好建立一个全局的命令文件例如:directive/directive.js 第二步:利用Vue.directive()建立一个全局命令,并将它暴露出来,例如一个focus 让表单自动聚

关于vue打包后,访问不到页面和访问不到图片。

vue项目完成打包上线的时候很多人都会碰到静态资源找不到,常见的有两个第一种:js,css路径不对解决办法:打开config/index.js,将其中的assetsPublicPath值改为’./’ 第二种:css中引用的图片资源找不到我的项目文件中有一段css,其中引用了一个背景图片“src/assets/”文件夹下有这张图片,打包后路径发生变化这个图片就找不到了,解决办法:打开“build/utils.js”,增加一行代码即可 原文地址:https://www.cnblogs.com/blu