使用ES6语法在vue中导入多个组件不起作用

Han*_*n W 10 javascript importerror ecmascript-6 webpack vuejs2

所以我试图创建一个vue实例,需要文件夹"views /"中的其他组件

这是文件结构:

  • 项目
    • 建立/
    • 配置/
    • node_modules /
    • SRC /
      • 意见/
      • 组件/
    • App.vue

如果我在App.vue中执行此操作,服务器将运行,没有错误:

import Navbar from 'layouts/Navbar'
import Topbar from 'layouts/Topbar'
import AppMain from 'layouts/AppMain'
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试这样做:

import { AppMain, Navbar, Topbar } from 'layouts/'
Run Code Online (Sandbox Code Playgroud)

服务器将无法运行并将返回:

This dependency was not found:
* views/ in ./src/router/index.js
Run Code Online (Sandbox Code Playgroud)

这是webpack.base.config.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'),
    },
  },
Run Code Online (Sandbox Code Playgroud)

我真的不知道出了什么问题,请帮忙

aks*_*aks 17

这不是正确的方法.

import { something } from 'some_file';
Run Code Online (Sandbox Code Playgroud)

是关于导入默认情况下未导出的内容!当一个文件暴露很多东西时,这很有用.

import Something from 'some_file';
Run Code Online (Sandbox Code Playgroud)

是关于从您的文件导入默认导出项目.

当前设置无法编写您所写的内容.你必须写它:

import { AppMain, Navbar, Topbar } from 'layouts';
Run Code Online (Sandbox Code Playgroud)

然后index.js在布局中创建一个文件,然后将跟随该文件的内容:

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

export {
  Navbar,
  Topbar,
  AppMain
}
Run Code Online (Sandbox Code Playgroud)

现在应该可以了,请在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import上阅读有关ES6导入的更多信息.

  • 它应该是index.js文件中的export,而不是export default中的,不知道为什么,但是我测试了一下 (2认同)
  • 我也不知道,但它会给出"依赖未找到"的错误,但是当我改为导出时,它会起作用 (2认同)