在没有 webpack 的情况下使用 VueJs 和 Typescript

Posted

技术标签:

【中文标题】在没有 webpack 的情况下使用 VueJs 和 Typescript【英文标题】:Use VueJs and Typescript without webpack 【发布时间】:2018-10-01 21:31:32 【问题描述】:

我正在尝试用最少的配置来配置一个项目。我想使用 VueJSTypescript

我将vue.js 文件和一个脚本 添加到我的主页:

<script src="~/lib/vue/dist/vue.js"></script>
<script src="~/js/site.js" ></script>

一切正常。

但是如果我想使用 TypescriptVue class 是找不到的:

Symbol 'Vue' cannot be properly resolved, probably it is located in inaccessible module

因为定义文件使用export,所以必须使用Vue作为模块。

如果我添加导入,它会编译,但它会在输出中并且在浏览器中不起作用。

有没有办法在不使用 webpack 的情况下完成这项工作?

【问题讨论】:

为什么不能在浏览器中运行? 我有一个错误:SCRIPT1086: SCRIPT1086: Module import or export statement unexpected here 我认为没有捆绑器就没有办法做到这一点,因为 vue 已经在您的示例中预先打包,因此很可能在那时与 typescript 不兼容。我强烈建议你使用新的 vue-cli 版本 3,因为它允许你设置一个没有配置的 typescript vue 项目。 看来你是对的。谢谢 【参考方案1】:

默认情况下必须导入 vue 的 Typescript 类型。您可以使用如下自定义类型定义文件让它们在不导入的情况下工作:

创建新文件 global.d.ts - 名称无关紧要

//global.d.ts
import  VueConstructor  from 'vue'

declare global 
    const Vue: VueConstructor

【讨论】:

这在const Vue: VueConstructor 行与Error TS2403 (TS) Subsequent variable declarations must have the same type. Variable 'Vue' must be of type 'typeof import, but here has type 'VueConstructor&lt;Vue&gt;' 失败

以上是关于在没有 webpack 的情况下使用 VueJs 和 Typescript的主要内容,如果未能解决你的问题,请参考以下文章

在没有 webpack 的情况下使用 Vue js 组件

Vuejs Webpack压缩插件不压缩

即使在生产模式下构建,VueJS也会显示“开发模式”消息

[Vuejs] webpack+vue-cli打包如何引用相对路径

vuejs code splitting with webpack 3种模式

使用带有 vuejs 的 jquery 插件,没有 webpack?