Проблемы с компонентами после npm run build - PullRequest
0 голосов
/ 16 марта 2019

Используя плагин Vue-cli, я создал небольшое приложение SPA с каркасом компонента Vuetify.Когда я работал в режиме разработки, все было хорошо, но в производственном режиме была проблема с компонентами 'installComponents' has already been declared

Затем я обнаружил, что это было связано с опцией встряхивание дерева , которая толькоработает с webpack 4 в производственном режиме.Или, если быть более точным, включая необходимые компоненты, вместо того, чтобы получать их все.

Итак, вместо регистрации каждого отдельного компонента я попытался использовать vuetify-loader для автоматизации " компонентов a la carte"но мне кажется, что я что-то упускаю.

мои плагины / vuetify.js

import Vue from 'vue'
import Vuetify from 'vuetify/lib'
import 'vuetify/src/stylus/app.styl'

Vue.use(Vuetify)

А мой vue.config.js такой

const VuetifyLoaderPlugin = require('vuetify-loader/lib/plugin')
module.exports = {
  configureWebpack: {
    plugins: [
      new VuetifyLoaderPlugin()
    ]
  }
}

И main.js выглядит так:

import Vue from 'vue'
import './plugins/vuetify'
import App from './App.vue'
import router from './router'
import store from './store/store'
import axios from 'axios';

Vue.config.productionTip = false

//adding main path to baseurl
axios.defaults.baseURL = "";
// Global settings for Axios
Vue.prototype.$http = axios;


new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')

И я все еще получаю эту ошибку

Module parse failed: Identifier 'installComponents' has already been declared (35:7)

Стоит отметить, что мой babel.config.js выглядит такэто:

module.exports = {
  presets: [
    '@vue/app'
  ]
}

Я использую vue 2.5.21 и vuetify 1.3.0

ОБНОВЛЕНИЕ

Я изменил свой vue.config.JS с этими строками

module.exports = {
    publicPath: process.env.NODE_ENV === 'production'
        ? '/hr-map/'
        : '/vue-map/',
    chainWebpack: config => {
        config.module
            .rule('vue')
            .use('vue-loader')
            .loader('vue-loader')
            .tap(options => {
                // modify the options...
                return options
            })
    }
}

Но сейчас в производстве я получаю довольно странную ошибку для своих компонентов

Uncaught TypeError: T(...)(...) is not a function
at Module.56d7 (VectorFeatures.vue:37)
at r (bootstrap:78)
at Object.0 (bootstrap:151)
at r (bootstrap:78)
at i (bootstrap:45)
at bootstrap:151
at bootstrap:151

enter image description here

Должен сказать, что когда я в среде разработчиков, все работает нормально.

1 Ответ

0 голосов
/ 16 марта 2019

Загрузчик запускается дважды, поэтому вы получаете эту ошибку.

Надеюсь, это поможет вам: https://github.com/vuetifyjs/vuetify-loader/issues/20

...