Vuejs, Bootstrap - Vue: пустые страницы: Webpack говорит: «Невозможно прочитать привязки свойств для null» - PullRequest
0 голосов
/ 08 мая 2020

там.

У меня странная проблема с моим проектом. Вчера нормально заработало. Все страницы обработаны. Никаких проблем, пока я не решу импортировать только тот компонент, который я использую из Bootstrap - Vue, потому что, когда я построил его из продакшена, Webpack сказал: «Проект слишком тяжелый, возможно, производительность может снизиться». Затем весь этот долбанный проект перестал работать (если вы go перейдете на localhost: 8080, вы увидите пустую страницу без информации о том, что происходит). Я зашел в документацию Bootstrap - Vue для получения дополнительной информации, нашел этот фрагмент кода и вставил в vue .config. js:

module.exports = {
configureWebpack: {
  resolve:{
      alias: {
          'bootstrap-vue$' : 'bootstrap-vue/src/index.js'
      }
  },

  module: {
      rules: [
          {
            test: /\.js$/,
            exclude: /node_modules\/(?!bootstrap-vue\/src\/)/,
            use: {
                loader: 'babel-loader',
                options: {
                    presets: ['env']
                }
            }
          }
      ],

      resolve: {
        alias: {
          vue$: 'vue/dist/vue.runtime.esm.js',
          vue$: 'vue/dist/vue.esm.js' 
        }
      }
  }
}

}

Я снова запустил свой проект, и эта ошибка возникла:

Module build failed (from ./node_modules/babel-loader/lib/index.js):
TypeError: /home/juny/AppsWorkspace/twitty-alpha/src/router/index.js: Cannot 
read property 'bindings' of nul

Я проверил "index. js" маршрутизатора и там ничего необычного. Это код 'router / index. js':

import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/Home.vue'
import About from '../views/About.vue'
import SignUp from '../views/SignUp.vue'
import TwittyUI from '../views/TwittyUI.vue'
import UserProfile from '../views/UserProfile.vue'
import Settings from '../views/Settings.vue'
import Chat from '../views/Chat.vue'
import UserVerified from '../views/userVerified.vue'

Vue.use(VueRouter)

const routes = [
{
path: '/',
name: 'Home',
component: Home
},
{
path: '/about',
name: 'About',
component: About
},
{
path: '/signUp',
name: 'SignUp',
component: SignUp
},
{
path: '/twit',
name: 'TwittyUI',
component: TwittyUI,
},
{
path: '/userProfile',
name: 'UserProfile',
component: UserProfile,
},
{
path: '/settings',
name: 'Settings',
component: Settings,
},
{
path: '/chat',
name: 'Chat',
component: Chat,
},
{
path: '/userVerified',
name: 'UserVerified',
component: UserVerified,
}
]

const router = new VueRouter({
  routes
}) 

export default router

My main. js file:

import '@babel/polyfill'
import 'mutationobserver-shim'
import Vue from 'vue'
import './plugins/bootstrap-vue'
import App from './App.vue'
import './registerServiceWorker'
import router from './router'
import { 
 BootstrapVue, 
 IconsPlugin,
 LayoutPlugin,
 BForm,
 BFormInput,
 BButton,
 BCard,
 NavbarPlugin,
 FormTagsPlugin
} from 'bootstrap-vue'

Vue.use(BootstrapVue)
Vue.use(IconsPlugin)
Vue.use(LayoutPlugin)
Vue.use(BForm)
Vue.use(BFormInput)
Vue.use(BButton)
Vue.use(BCard)
Vue.use(NavbarPlugin)
Vue.use(FormTagsPlugin)

Vue.config.productionTip = false

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

.. а это мой пакет. json для более глубокого понимания:

 {
   "name": "twitty-alpha",
   "version": "0.1.0",
   "private": true,
   "scripts": {
   "serve": "vue-cli-service serve",
   "build": "vue-cli-service build",
   "test:unit": "vue-cli-service test:unit",
   "test:e2e": "vue-cli-service test:e2e",
   "lint": "vue-cli-service lint"
 },
 "dependencies": {
   "bootstrap-vue": "^2.1.0",
   "core-js": "^3.6.4",
   "firebase": "^7.14.2",
   "idb": "^5.0.2",
   "register-service-worker": "^1.7.1",
   "vue": "^2.6.11",
   "vue-router": "^3.1.6"
 },
 "devDependencies": {
   "@babel/polyfill": "^7.7.0",
   "@vue/cli-plugin-babel": "^4.3.0",
   "@vue/cli-plugin-e2e-cypress": "^4.3.0",
   "@vue/cli-plugin-eslint": "^4.3.0",
   "@vue/cli-plugin-pwa": "^4.3.0",
   "@vue/cli-plugin-router": "^4.3.0",
   "@vue/cli-plugin-unit-jest": "^4.3.0",
   "@vue/cli-service": "^4.3.0",
   "@vue/test-utils": "1.0.0-beta.31",
   "babel-eslint": "^10.1.0",
   "babel-preset-env": "^1.7.0",
   "bootstrap": "^4.3.1",
   "eslint": "^6.7.2",
   "eslint-plugin-vue": "^6.2.2",
   "mutationobserver-shim": "^0.3.3",
   "popper.js": "^1.16.0",
   "portal-vue": "^2.1.6",
   "sass": "^1.19.0",
   "sass-loader": "^8.0.0",
   "vue-cli-plugin-bootstrap-vue": "^0.6.0",
   "vue-template-compiler": "^2.6.11"
  }
}

Простите, за этот очень длинный пост, но я пытаюсь выложить все важные вещи на стол. Так что другие ребята могут использовать его для решения своих проблем. Я ничего не знаю о Webpack и Babel, так что, наверное, это что-то глупое. Но это то, что мне неизвестно. Итак, удачной охоты !! и дайте мне знать, что вы сделали.

1 Ответ

0 голосов
/ 08 мая 2020

Одна проблема, которая всплывает, заключается в том, что вы используете Vue.use(..) как для компонентов, так и для плагинов ... это не сработает. Также, когда вы Vue.use(BootstrapVue), вы устанавливаете все BootstrapVue (без значков). Это не то, чего вы ожидаете.

// Register plugins
Vue.use(IconsPlugin)
Vue.use(LayoutPlugin)
Vue.use(NavbarPlugin)
Vue.use(FormTagsPlugin)
// Register components
Vue.component('BForm', BForm)
Vue.component('BFormInput', BFormInput)
Vue.component('BButton', BButton)
Vue.component('BCard', BCard)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...