有没有一种方法可以对Vue前端进行版本化,并与后端检查是否为最新版本?

时间:2018-12-07 15:16:19

标签: laravel vue.js

我正在与Laravel和VueJs一起制作SPA。 有时,开头的.js文件会缓存在浏览器中,而客户端看不到最新更新。我使用的是块名称,但仍由浏览器缓存。

是否可以使用Webpack自动对文件进行版本控制并通知客户端正确更新站点?

更新> webpack.mix.js:

const path = require('path')
const mix = require('laravel-mix')
const webpack = require('webpack')

// const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer')

mix
  .js('resources/assets/js/app.js', 'public/dist/js')
  .sass('resources/assets/sass/app.scss', 'public/dist/css')
  .styles([
    'resources/assets/sass/fa/css/fontawesome-all.css',
    'public/css/awesome-bootstrap-checkbox.css',
    'public/css/inspinia.css',
    'node_modules/vue-multiselect/dist/vue-multiselect.min.css'
  ], 'public/dist/css/all.css')

  .sourceMaps()
  //.disableNotifications()

if (mix.inProduction()) {
  mix.version()

  mix.extract([
    'vue',
    'vform',
    'axios',
    'vuex',
    'jquery',
    'popper.js',
    'vue-i18n',
    'vue-meta',
    'js-cookie',
    'vue-router',
    'sweetalert2',
    'vuex-router-sync',
    '@fortawesome/fontawesome',
    '@fortawesome/vue-fontawesome'
  ])
}

mix.webpackConfig({
  plugins: [
    // new BundleAnalyzerPlugin()
    new webpack.ProvidePlugin({
      $: 'jquery',
      jQuery: 'jquery',
      'window.jQuery': 'jquery',
      Popper: ['popper.js', 'default']
    })
  ],
  resolve: {
    extensions: ['.js', '.json', '.vue'],
    alias: {
      '~': path.join(__dirname, './resources/assets/js')
    }
  },
  output: {
    chunkFilename: 'dist/js/chunk.[name].[chunkhash].js',
    path: process.env.MIX_APP_URL,
    publicPath: '/wms/public/'
  }

})

0 个答案:

没有答案