2026/3/2 11:28:15
网站建设
项目流程
一千元左右最好的手机,网站标题关键优化,网站图片展示源码,app软件制作教程对于 Vue 3 Vite 项目#xff0c;配置 jQuery 全局变量的方法与 Webpack 项目完全不同。Vite 不直接使用 Webpack 的 ProvidePlugin#xff0c;需要通过 Vite 插件或直接修改全局变量的方式来实现。
以下是为你量身定制的两种方法#xff0c;强烈推荐使用第一种“自动注入…对于 Vue 3 Vite 项目配置 jQuery 全局变量的方法与 Webpack 项目完全不同。Vite 不直接使用 Webpack 的ProvidePlugin需要通过 Vite 插件或直接修改全局变量的方式来实现。以下是为你量身定制的两种方法强烈推荐使用第一种“自动注入”方案。✅ 方案一使用vite-plugin-externals自动注入推荐这个方案最接近原始 Webpack 的ProvidePlugin效果配置后你无需修改任何组件代码。操作步骤安装依赖在项目根目录下运行以下命令安装jquery和vite-plugin-externalsbashnpm install jquery --save npm install vite-plugin-externals --save-dev配置vite.config.ts打开你的vite.config.ts文件添加以下配置typescript// vite.config.ts import { defineConfig } from vite import vue from vitejs/plugin-vue import { viteExternalsPlugin } from vite-plugin-externals // 引入插件 export default defineConfig({ plugins: [ vue(), // 配置此插件以全局注入 jQuery viteExternalsPlugin({ jquery: jQuery, // 关键将 import 的 jquery 替换为全局的 jQuery 变量 }) ], // 可选如果你遇到构建问题可以添加 resolve 别名配置 resolve: { alias: { jquery: jquery/dist/jquery.min.js, // 确保指向正确的路径 }, } })在index.html中引入 jQuery在public/index.html的head或body结束前添加 jQuery CDN 链接这是全局变量的来源html!-- 在 public/index.html 中添加 -- script srchttps://code.jquery.com/jquery-3.6.0.min.js/script更新类型声明在你的全局类型声明文件如src/env.d.ts或src/vue-plugin-hiprint.d.ts中添加typescript// 声明全局 jQuery 和 $ 变量 interface Window { $: any; jQuery: any; } declare const $: any; declare const jQuery: any;重启开发服务器bashnpm run dev 方案二手动设置全局变量备用方案如果方案一遇到问题可以使用更直接的手动方案。安装 jQuerybashnpm install jquery --save修改main.ts或main.js在项目的入口文件通常是src/main.ts最顶部添加以下代码typescript// src/main.ts import * as jquery from jquery // 将 jQuery 设置为全局变量 ;(window as any).$ jquery.default || jquery ;(window as any).jQuery jquery.default || jquery // 原有的 Vue 应用创建代码 import { createApp } from vue import App from ./App.vue // ...更新类型声明同方案一的第4步。重启开发服务器。 验证配置是否成功配置完成后请按以下步骤验证在浏览器中打开你的设计器页面。打开开发者工具 (F12) → 控制台 (Console)。输入console.log($, jQuery)并按回车。如果能看到function...的输出而不是undefined则说明配置成功。⚠️ 重要提醒CSS 样式引入请务必确认已经按照之前提到的方法正确引入了vue-plugin-hiprint的打印样式文件否则设计器样式会错乱。代码修改配置成功后你的PrintDesigner.vue中直接使用$的代码hiprint.PrintElementTypeManager.buildByHtml($(.ep-draggable-item))应该就能正常工作了。版本兼容如果使用 CDN建议固定 jQuery 版本如示例中的 3.6.0避免因版本更新导致不兼容。请优先尝试方案一这是目前 Vite 生态下比较标准和优雅的解决方案。如果在配置过程中遇到任何具体的错误信息可以随时提供给我我再帮你分析。如果内网环境这里如何处理 script srchttps://code.jquery.com/jquery-3.6.0.min.js/script在内网环境下不能依赖外网CDN有几种可靠的解决方案其优缺点和操作步骤对比如下方案核心思路优点缺点推荐度方案一下载并托管jQuery文件将jQuery文件下载到项目内作为本地静态资源引用。最稳定可靠完全离线可用符合内网安全规范。需手动下载和管理文件版本。★★★★★ (首选)方案二使用 npm 包并调整 Vite 配置依赖已安装的 npm 包通过配置让Vite在构建时将其注入全局。依赖由 npm 统一管理版本更新方便。配置稍复杂需改动构建配置。★★★★☆方案三手动设置全局变量 (方案二的简化版)在应用入口文件 (main.ts) 中将import的 jQuery 显式挂载到window对象。无需改动index.html或复杂Vite配置最直接。需要在所有用到$的组件之前执行。★★★☆☆✅ 方案一下载并托管jQuery文件推荐这是最符合内网环境、最简单稳定的方案。操作步骤下载 jQuery 文件在能访问外网的机器上访问 jQuery 官网 或直接使用链接https://code.jquery.com/jquery-3.6.0.min.js下载该.js文件。放入项目目录将下载好的jquery-3.6.0.min.js文件放入你 Vue 项目的public目录下例如public/libs/jquery/。这是 Vite 约定存放静态资源的地方该目录下的文件在构建时会原样复制到输出目录。修改index.html引用打开public/index.html文件将 CDN 链接改为指向你本地的路径html!-- 修改前 -- !-- script srchttps://code.jquery.com/jquery-3.6.0.min.js/script -- !-- 修改后假设文件放在 public/libs/jquery/ 下 -- script src/libs/jquery/jquery-3.6.0.min.js/script路径说明/开头表示从网站根目录开始查找Vite 开发服务器和最终构建都会正确映射到public目录。可选类型声明在你的全局类型声明文件如src/env.d.ts中确保有对全局$和jQuery的声明typescript// src/env.d.ts interface Window { $: any; jQuery: any; } // 或者直接声明全局变量 declare const $: any; declare const jQuery: any; 方案二使用 npm 包并调整 Vite 配置如果你已经在项目里通过npm install jquery安装了 jQuery此方案可以免去手动管理文件。操作步骤确保已安装 jQuerybashnpm install jquery配置vite.config.ts以全局注入修改vite.config.ts目的是在构建时将 jQuery 模块的导出注入为全局的$和jQuery变量。typescript// vite.config.ts import { defineConfig } from vite import vue from vitejs/plugin-vue export default defineConfig({ plugins: [vue()], // 新增以下配置 resolve: { alias: { // 确保jQuery解析到正确的文件 jquery: jquery/dist/jquery.min.js, }, }, // 使用 rollup 配置进行全局注入 build: { rollupOptions: { external: [jquery], // 告诉 Rollup jQuery 是外部依赖 output: { globals: { jquery: $ // 指定全局变量名 } } } }, // 在开发环境下也定义全局变量 define: { window.$: global.$, // 这个写法可能不通用更推荐方案三的入口文件方式 } })请注意仅通过 Vite 配置在开发环境下实现类似ProvidePlugin的完美自动注入较为复杂这通常需要借助插件。因此更推荐结合方案三。结合方案三关键由于纯配置方式可能不完美你很可能仍然需要按照下文“方案三”的步骤在main.ts中手动设置全局变量以确保开发时可用。 方案三手动设置全局变量最直接此方案不依赖index.html的script标签而是通过应用代码本身解决。操作步骤安装 jQuerybashnpm install jquery修改应用入口文件 (src/main.ts)在main.ts文件的最顶部添加以下代码typescript// src/main.ts import jquery from jquery // 将 jQuery 挂载到全局 window 对象上 (window as any).$ jquery (window as any).jQuery jquery // 以下是你的应用的原有代码 import { createApp } from vue import App from ./App.vue // ... createApp(App).mount(#app)更新类型声明同方案一的第4步。这个方案的原理是你的应用代码在浏览器中运行时会先执行main.ts。当执行到挂载代码时window.$和window.jQuery就被创建了。随后当vue-plugin-hiprint的代码执行$(.ep-draggable-item)时它从全局window对象上找到了这个函数调用就能成功。 总结与最终建议对于内网环境我给出一个清晰的决策路径如果你追求极致的稳定和简单不想与构建工具纠缠请选择【方案一】。这是最“傻瓜式”、最接近传统Web开发的方式在任何环境下都绝对可靠。如果你希望依赖由 npm 统一管理并且可以接受稍微复杂的配置请选择【方案三】或在方案二的基础上必须结合方案三。这是目前 Vite 环境下最实际、最有效的解决方案。无论选择哪个方案完成后都请删除index.html中旧的 CDN 引用如果采用方案三则无需此步。确保类型声明正确避免 TypeScript 报错。重启你的开发服务器(npm run dev)。实例操作环境Vue3^3.4.21 Vite^6.3.61、安装 jquery 和 vite-plugin-externalsnpm install jquery --savenpm install vite-plugin-externals --save-dev2、配置vite.config.ts// 引入插件 vite-plugin-externals 的 viteExternalsPlugin import { viteExternalsPlugin } from vite-plugin-externals; // https://vitejs.dev/config/ export default defineConfig({ // 插件配置 plugins: [ vue(), VueSetupExtend(), // 配置此插件以全局注入 jQuery viteExternalsPlugin({ // 将 import 的 jquery 替换为全局的 jQuery 变量 jquery: jQuery }), VueDevTools() ], }3、在入口文件 index.html 中 引入 jquey将j query.min.js 拷贝到 public 目录下再重命名为 jquery-3.7.1.min.jsindex.html!DOCTYPE html html langzh-CN head meta charsetUTF-8 link relicon href/lims.ico link relstylesheet typetext/css mediaprint href/print-lock.css script src/jquery-3.7.1.min.js/script meta nameviewport contentwidthdevice-width, initial-scale1.0 title%VITE_APP_TITLE%/title /head body div idapp/div script typemodule src/src/main.ts/script /body /html4、在全局类型声明文件env.d.ts文件中声明全局 jQuery 和 $ 变量env.d.ts/// reference typesvite/client / // ... // 声明全局 jQuery 和 $ 变量 interface Window { $: any; jQuery: any; } declare const $: any; declare const jQuery: any;验证结果