• vue-vli3创建的项目配置热更新


    vue-vli3创建的项目配置热更新

    问题描述:使用vue-cli3创建的项目,修改代码之后,浏览器页面不会自动刷新,然而之前使用webpack初始化的vue项目修改代码之后浏览器会重新加载一下,因为webpack初始化的项目可以在webpack.config.js配置热更新,具体配置下文见

    解决:

    使用vue ui导入当前项目,勾选启动运行时编译,可以做到热更新。

    附0 VUE UI使用方法

    附1 之前项目的webpack.config.js配置

    webpack.config.js

    var webpack = require('webpack');
    var ExtractTextPlugin = require('extract-text-webpack-plugin')
    var path = require('path');
    var HtmlWebpackPlugin = require('html-webpack-plugin');
    var Proxy = require('./proxy');
    var fs = require('fs')
    // 定义文件夹的路径
    var ROOT_PATH = path.resolve(__dirname);
    
    module.exports = {
      devtool: 'source-map', // 配置生成Source Maps 选择合适的选项
      // devtool: config.dev.devtool,
      // entry: './app/main.js', // 入口文件
      // entry: './src/main.js',// 入口文件 app: path.resolve(__dirname,'./src/main.js')
      entry: {
        // app: path.resolve(__dirname,'./src/main.js'),
        index: './src/main.js',
      },
      output: {
        path: __dirname + '/build', // 打包后文件存放位置
        filename: "[name].[hash].entry.js",
        chunkFilename: "[name].[hash].min.js"
        //publicPath: '/build/'
      },
      resolve: {
        // require时省略的扩展名
        extensions: ['.js', '.vue', '.json'],
        alias: {
          'vue$': 'vue/dist/vue.common.js'
        }
      },
      plugins: [
        new webpack.HotModuleReplacementPlugin(),
        // new ExtractTextPlugin('style.css'),
        new HtmlWebpackPlugin({
          filename: 'index.html',
          template: 'template.html',
          inject: true
        }),
        //new webpack.optimize.CommonsChunkPlugin({name:'vendor',filename:'vendor.bundle.js'})
    
        new webpack.ProvidePlugin({
          $: 'jquery',
          jQuery: 'jquery',
          'window.jQuery': 'jquery',
          'window.$': 'jquery',
        })
      ],
      /*
      externals: {
      	jquery: 'window.$'
      }, */
      devServer: {
        //contentBase: './public', // 本地服务器所加载的页面所在的目录
        historyApiFallback: true, // 不跳转
        inline: true, // 实时刷新
        hot: true,
        proxy: Proxy
      },
      module: {
        loaders: [{
            test: /.vue$/,
            loader: 'vue-loader',
            /*
            options: {
            	loaders: {
            		css: ExtractTextPlugin.extract({
            			use: 'css-loader',
            			fallback: 'vue-style-loader'
            		})
            	}
            } */
          },
          {
            test: /.css$/,
            /*
            use: ExtractTextPlugin.extract({
            	use: 'css-loader',
            	fallback: 'style-loader'
            }) */
            loader: 'style-loader!css-loader'
            /*
            loader: 'style-loader!css-loader',
            options: {
            	loaders: {
            		css: ExtractTextPlugin.extract({
            			use: 'css-loader'
            		})
            	}
            } */
          },
          {
            test: /.scss$/,
            loader: 'style-loader!css-loader!sass-loader'
          },
          {
            test: /.json$/,
            loader: 'json-loader'
          },
          {
            test: /.(png|jpe?g|gif|svg|jgp)(?.*)?$/,
            loader: 'url-loader',
            options: {
              limit: 10000,
              name: 'static/images/[name].[hash:7].[ext]'
            }
          },
          {
            test: /.(woff2?|eot|ttf|otf)(?.*)?$/,
            loader: 'url-loader',
            options: {
              limit: 10000,
              name: 'static/fonts/[name].[hash:7].[ext]'
            }
          },
          // {
          // 	test: /.js$/,
          // 	loader: 'babel-loader',
          // 	query: {
          // 		compact: false
          // 	}
          // },
          {
            test: /iview.src.*?js$/,
            loader: 'babel-loader'
          },
          {
            test: /.js$/,
            loader: 'babel-loader',
            exclude: /node_modules/
          },
          {
            test: /.exec.js$/,
            use: ['script-loader']
          }
        ]
      },
    }
    
    

    附2 vue-cli3.0配置详解

  • 相关阅读:
    问题大全
    redis学习笔记-03:redis安装
    redis学习笔记-02:为什么使用NoSQL数据库
    redis学习笔记-01:redis简介
    docker学习笔记-05:Docker安装mysql和redis
    docker学习笔记-06:自定义DockerFile生成镜像
    docker学习笔记-05:DockerFile解析
    全栈之路-杂篇-JPA多对多配置分析
    全栈之路-小程序API-JWT令牌详细剖析与使用
    全栈之路-小程序API-Json数据类型的序列化与反序列化
  • 原文地址:https://www.cnblogs.com/wenqiangit/p/10516522.html
Copyright © 2020-2023  润新知