【问题标题】:Unable to import Vue from vue无法从 vue 导入 vue
【发布时间】:2020-08-01 09:47:07
【问题描述】:

尝试使用 vue.js 和 vue-router.js 演示路由,但得到 SyntaxError "Cannot use import statement outside a module"。我正在尝试从正确的位置导入 vue。下面是树打印出来的。我没有正确导入 vue。谢谢。

树打印出来:

.
├── index.html
├── index.js
├── js
│   ├── vue-router.js
│   └── vue.js
└── src
    ├── App.vue
    ├── AppRouter.vue
    ├── ArticlesPage.vue
    └── HomePage.vue

index.html

<!DOCTYPE html>
<html>
  <head>
    <title>Vue app</title>
  </head>
  <body>

    <div id="app">
    </div>

  </body>
  <script src="js/vue.js"></script>
  <script src="js/vue-router.js"></script>
  <script src="index.js"></script>
</html>

index.js

import Vue from "./js/vue"; // errors here
import App from "./src/App";

const app = new Vue({
  el: "#app",
  render(h) {
    return h(App);
  }
});

【问题讨论】:

  • 你遇到了什么错误?
  • 试试import Vue from 'vue';

标签: javascript vue.js


【解决方案1】:

codesandbox.io PROJECT


.
├── package.json
├── public
│   ├── index.html
│   └── favicon.ico
└── src
    ├── assets
    │   └── logo.png
    ├── components
    │   └── HelloWorld.vue
    ├── router
    │   └── index.js
    ├── views
    │   └── Home.vue
    │   └── About.vue
    ├── App.vue
    └── main.js

Main.js

import Vue from 'vue';
import App from './App.vue';
import router from './router';

Vue.config.productionTip = false;

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

路由器/index.js

import Vue from 'vue';
import VueRouter from 'vue-router';

Vue.use(VueRouter);

const routes = [
    {
        path: '/',
        name: 'home',
        component: () => import('../views/Home.vue')
    },
    {
        path: '/about',
        name: 'about',
        component: () => import('../views/About.vue')
    }
];

const router = new VueRouter({
    mode: 'history',
    routes
});

export default router;

App.vue

<template>
  <div id="app">
    <router-link :to="{ name: 'home' }">HOME</router-link>
    <router-link :to="{ name: 'about' }">ABOUT</router-link>
    <router-view />
  </div>
</template>

<script>
export default {
  name: "App",
};
</script>

views/Home.vue

<template>
    <div id="home">
        <img width="25%" src="../assets/logo.png">
        <HelloWorld msg="Hello Vue from Home page!"/>
    </div>
</template>

<script>
import HelloWorld from "../components/HelloWorld";

export default {
    name: "Home",
    components: {
        HelloWorld
    }
};
</script>

【讨论】:

    【解决方案2】:

    这是因为您以独立方式运行。 在这种情况下,您需要在脚本标签上添加 type="module"。

    <script src="index.js" type="module"></script>
    

    【讨论】:

      猜你喜欢
      • 2019-11-01
      • 2019-10-25
      • 2019-06-03
      • 2019-04-03
      • 1970-01-01
      • 1970-01-01
      • 2018-02-23
      • 2019-04-23
      • 2018-08-06
      相关资源
      最近更新 更多