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 应用程序中使用。

相关推荐
To_OC5 小时前
别再串行写 await 了,Promise.all 才是并行请求的正确打开方式
前端·javascript·promise
To_OC5 小时前
LC 17 电话号码的字母组合:我的回溯算法,就是从这道题开窍的
javascript·算法·leetcode
vipbic6 小时前
中后台越做越乱后,我用插件化把它救回来了
前端·vue.js
Hyyy6 小时前
Computer Use 适合做什么,不适合做什么——一次真实使用后的思考
前端
小和尚同志6 小时前
前端 AI 单元测试思考与落地
前端·人工智能·aigc
invicinble7 小时前
c端系统,其实更像一个信息展示平台
前端
你怎么知道我是队长8 小时前
JavaScript的变量和数据类型介绍
开发语言·javascript·ecmascript
李姆斯8 小时前
管理是否可以被完全量化
前端·产品经理·团队管理
名字还没想好☜9 小时前
Next.js 中间件实战:鉴权、重定向与 A/B 分流
开发语言·前端·javascript·中间件·react·next.js
广州灵眸科技有限公司9 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) INI文件操作
java·前端·javascript·网络·人工智能