Vue и TypeScript: не удается найти имя «экспорт» - PullRequest
0 голосов
/ 01 марта 2019

После изменения моего App.vue на использование машинописного текста теперь я получаю ошибку компилятора:

[tsl] ОШИБКА в \ src \ main.ts (2,23) TS2304: Не удается найти имя 'exports '.

И если я позволю vue-serve перекомпилировать изменения, я получу ту же ошибку снова, но также и в App.vue:

[tsl] ERROR вsrc \ main.ts (2,23) TS2304: не удается найти имя «экспорт».

[tsl] ОШИБКА в src \ App.vue.ts (2,23) TS2304: не удается найти имя «экспорт».

[tsl] ОШИБКА в src \ App.vue.ts (13,1) TS2304: Не удается найти имя «export».

Простой пример машинописного vue-приложения, созданного с помощьюVueCli3:

main.ts

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from '@/store'

new Vue({
  router,
  store,
  components: { App } //Removed render: h=> h() since it was throwing "any type" TS error. "Exports" error would throw either way.
}).$mount('#app')

App.vue

<template>
  <div id="app">
    <router-view></router-view>
  </div>
</template>

<script lang="ts">
import Vue from 'vue';
import Component from "vue-class-component";

@Component
export default class App extends Vue {

}

</script>

Почему это происходит?Это приложение vue-cli по умолчанию, за исключением того, что App.vue был изменен для использования машинописи.

Существуют все соответствующие фрагменты веб-набора (я боролся с этим уже 2 недели), так как он отлично работает с другими файлами машинописного текста (например, с использованием маршрутизатора компонентов) и файлами машинописного текста vue, покаApp.vue использует машинописный текст, или любой модуль, который импортирует App.vue, использует машинописный текст.

Иногда он компилируется просто отлично, и вместо этого ошибка появляется в консоли ReferenceError: exports is not defined.Я не могу надежно воспроизвести одно или другое, иногда выдает ошибку компилятора, иногда выдает ошибку ссылки во время выполнения.

1 Ответ

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

В прошлом у меня была похожая проблема.

, возможно, попытайтесь импортировать как

import Vue from 'vue'
import App from './App.vue'
import * as router from './router'
import * as store from '@/store'
  • , как способ импорта на ES6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...