vite创建vue3项目页面引用public下js文件失败解决

目录

问题出现

情景描述:

原因查询:

为什么不能这样导入?

最终目标:

问题解决(全局引用)


问题出现

情景描述:

在将html页面转到vite构建的vue3项目页面时内容和样式已经正确引入,(引入前将html页面的静态资源全部放到了public静态资源下)但是js文件在vue页面引入时报各种错,解决这个出现那个

原因查询:

基于此情况我阅读了vite官方文档发现:public 中的资源不应该被 JavaScript 文件引用也就是说在vue3页面的script中不能使用import导入public下的静态js文件

为什么不能这样导入?

因为你在 Vue 3 的 <script setup> 区块中使用了导入的 JavaScript 库,但是这些库可能不是以模块化方式编写的,无法直接与 Vue 组件进行交互。

在 Vue 3 中,<script setup> 区块将组件逻辑放在单个区块中,自动推断变量和组件选项,并且默认开启了类似于模块化的模式。然而,一些旧的 JavaScript 库可能不符合这种模块化规范,无法直接与 Vue 组件配合使用。

解决这个问题的方法之一是将这些不兼容的 JavaScript 库作为全局变量引入,而不是在 <script setup> 中使用 import 导入。可以在 index.html 中使用 <script> 标签手动引入这些库,从而使它们成为全局可用的变量。

最终目标:

在页面中使用 public 文件夹下的 JavaScript 文件

问题解决(全局引用)

index.html 入口文件中通过 <script> 标签手动引入静态 JS 文件。这样,该文件将被全局引用,可以在整个应用程序中访问它

html 复制代码
<!DOCTYPE html>
<html>
<head>
  <!-- head 部分代码 -->
</head>
<body>
  <!-- body 部分代码 -->

  <!-- 引入其他资源 -->

  <!-- 手动引入的 JavaScript 库 -->
  <script src="/path/to/jquery.min.js"></script>
  <script src="/path/to/bootstrap.bundle.min.js"></script>
  <script src="/path/to/lightbox.min.js"></script>
</body>
</html>
  1. 注意:确保使用正确的路径来引入这些库文件,路径应该是相对于你的项目根目录来指定的。

  2. 保存文件并重新启动开发服务器。现在,这些 JavaScript 库将在应用程序加载时被引入,并可在整个 Vue 3 应用程序中使用。

相关推荐
小程故事多_8017 分钟前
拆解SOP+ReAct对话Agent,告别硬编码,解锁智能对话的柔性迭代能力
前端·人工智能·react.js·前端框架
nicole bai20 分钟前
vue 自定义模块内容
前端·javascript·vue.js
清水白石00836 分钟前
Python 类定义阶段自动注册子类:从 `__init_subclass__` 到插件系统实战
linux·前端·python
西西学代码1 小时前
Flutter---StreamBuilder案例
javascript·windows·flutter
用户69371750013841 小时前
Kimi K3 综合能力处于全球第一梯队
android·前端·后端
anno2 小时前
Agent 新手 Skill 优先级指南:从第一套必装工作流,到专业能力补全
前端·后端
Liora_Yvonne2 小时前
前端请求层到底怎么封?为什么全局 axios 单例越用越难维护
前端
anno2 小时前
别再把文档“一刀切”:用 LangChain.js 做好 RAG 的第一公里
前端·后端
皮卡穆2 小时前
React 中使用 react-org-tree 实现组织结构树
前端·react.js·前端框架
MariaH2 小时前
费曼学习法与effort-learning理论
前端