Импорт нескольких компонентов в vue с использованием синтаксиса ES6 не работает [дубликат]

этот вопрос уже есть ответ здесь:

поэтому я пытаюсь создать экземпляр vue, которому нужны другие компоненты из папки " views/"

вот файл структура:

    • build/
    • config/
    • папки node_modules/
    • src/
      • вид/
      • компоненты/
    • App.vue

если я сделаю это в приложении.Вью, сервер будет работать без ошибок:

import Navbar from 'layouts/Navbar'
import Topbar from 'layouts/Topbar'
import AppMain from 'layouts/AppMain'

но если я попробую это вместо этого:

import { AppMain, Navbar, Topbar } from 'layouts/'

сервер не будет работать и будет возвращение:

This dependency was not found:
* views/ in ./src/router/index.js

вот webpack.основа.конфиг.js

function resolve (dir) {
  return path.join(__dirname, '..', dir)
}

module.exports = {
  entry: {
    app: './src/main.js'
  },
  output: {
    path: config.build.assetsRoot,
    filename: '[name].js',
    publicPath: process.env.NODE_ENV === 'production'
      ? config.build.assetsPublicPath
      : config.dev.assetsPublicPath
  },
  resolve: {
    extensions: ['.js', '.vue', '.json', '.scss'],
    alias: {
      'vue$': 'vue/dist/vue.esm.js',
      '@': resolve('src'),
      'layouts': resolve('src/layouts'),
      'views': resolve('src/views'),
      'components': resolve('src/components'),
      'variables': path.resolve(__dirname, '../src/assets/common/variables.scss'),
    },
  },

Я действительно понятия не имею, что случилось, PLZ help, thx

1 ответов


Это не правильный способ сделать это.

import { something } from 'some_file';

об импорте чего-то, что не экспортируется по умолчанию! Это полезно в случае, когда один файл предоставляет много вещей.

import Something from 'some_file';

об импорте экспортированного элемента по умолчанию из вашего файла.

то, что вы пишете, невозможно с текущей настройкой. Вам придется написать это так:

import { AppMain, Navbar, Topbar } from 'layouts';

затем создать index.js файл в макетах, а затем следующий будет содержимым для этот файл:

import Navbar from 'layouts/Navbar'
import Topbar from 'layouts/Topbar'
import AppMain from 'layouts/AppMain'

export {
  Navbar,
  Topbar,
  AppMain
}

Это должно работать сейчас, попробуйте прочитать больше об импорте ES6 на https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import