vue3+vite+ts集成第三方js

npm run dev可以正常运行和测试。但是npm run build会报错。

要实现引入静态js,避免使用全局变量报错。

1. HTML 引入第三方 JS

在你的 HTML 文件中,通过 <script> 标签引入一个本地第三方 JS 文件,例如:

复制代码
<script src="/path/to/tools.js"></script>

tools.js文件中定义如下函数:

复制代码
function exitApp(){
	if(navigator){
		if (navigator.app) {
			navigator.app.exitApp();
		} else if (navigator.device) {
			navigator.device.exitApp();
		}
	}
}

2. 声明文件(tools.d.ts)

为了在 TypeScript 项目中使用这个全局变量而不产生错误提示,你需要为这个 JS 文件创建一个类型声明文件。例如,创建一个 tools.d.ts 文件,内容如下:

复制代码
declare namespace cordova {
  // 在这里定义 cordova 对象的类型和结构
  function exitApp(): void;
  // 其他需要的类型声明
}

这个文件告诉 TypeScript 存在一个 rap 全局变量,并描述了它的类型和接口。

3. 引用声明文件(env.d.ts)

env.d.ts 文件中使用 /// <reference path="..."/> 语法引用声明文件:

该文件在项目根目录下,直接在后面加一行。注意保留前面3个斜杠。

复制代码
/// <reference types="vite/client" />
/// <reference path="./src/uitls/tools.d.ts" />

4. 使用 cordova 变量

复制代码
const exit = () => {
	showConfirmDialog({
	  title: '确认要退出系统吗?',
	})
	  .then(() => {
		  cordova.exitApp();
	  })
	  .catch(() => {
	    // on cancel
	  });
    
}

这些就可以正常编译通过了。npm run build。

cordova 变量的来源

HTML 引入:通过 HTML 文件引入的 tools.js 文件,使得浏览器环境中存在一个全局的 rap 对象。

TypeScript 类型声明:通过 tools.d.ts 文件中的 declare namespace rap {},TypeScript 知道了 rap 的结构和类型。

项目引用:env.d.ts 中的引用确保 TypeScript 编译器在整个项目中都能识别 rap 变量的类型信息。

这样,在项目中使用 rap 变量时,既能够利用浏览器中的全局变量,又可以享受 TypeScript 的类型检查和智能提示功能。

相关推荐
泉飒1 小时前
lua注意事项
开发语言·笔记·lua
hao_wujing2 小时前
使用逆强化学习对网络攻击者的行为偏好进行建模
开发语言·网络·php
还是鼠鼠2 小时前
单元测试-概述&入门
java·开发语言·后端·单元测试·log4j·maven
烛阴3 小时前
Date-fns教程:现代JavaScript日期处理从入门到精通
前端·javascript
明月看潮生3 小时前
青少年编程与数学 02-020 C#程序设计基础 14课题、程序调试
开发语言·青少年编程·c#·编程与数学
小蜜蜂嗡嗡4 小时前
flutter项目迁移空安全
javascript·安全·flutter
抽风的雨6104 小时前
【python深度学习】Day 42 Grad-CAM与Hook函数
开发语言·python·深度学习
Mikhail_G4 小时前
Python应用for循环临时变量作用域
大数据·运维·开发语言·python·数据分析
江城开朗的豌豆4 小时前
JavaScript篇:a==0 && a==1 居然能成立?揭秘JS中的"魔法"比较
前端·javascript·面试
人衣aoa4 小时前
Python编程基础(二)| 列表简介
开发语言·python