uniapp JS引入静态资源方式打包
时间: 2023-08-03 07:06:14 浏览: 456
在uniapp中,可以使用相对路径或绝对路径的方式引入静态资源,例如图片、音频、视频等。在打包APP时,需要注意以下几点:
1. 相对路径引入静态资源
如果要使用相对路径引入静态资源,需要将资源文件夹放到项目的static目录下,例如:
```html
<img src="../static/images/logo.png" alt="logo">
```
这里假设在项目的pages目录下有一个子目录叫做home,而static目录和pages目录是在同一级目录下。因此可以使用相对路径`../static`来引入图片。
2. 绝对路径引入静态资源
如果要使用绝对路径引入静态资源,可以使用uni-app提供的全局变量`__uniapp_base_url__`,例如:
```html
<img :src="`${__uniapp_base_url__}/static/images/logo.png`" alt="logo">
```
这里使用了ES6的模板字符串,将`__uniapp_base_url__`和图片路径拼接起来。`__uniapp_base_url__`是uni-app提供的全局变量,指向应用程序的根路径。
无论使用相对路径还是绝对路径,都需要确保静态资源已经正确地打包到应用程序中了。可以在打包后的应用程序中查看是否存在对应的静态资源。
相关问题
uniapp 打包引入的第三方JS库
### 如何在 UniApp 中正确引入和使用第三方 JS 库
#### 一、通过 npm 安装并引入第三方库
对于大多数流行的 JavaScript 库,推荐的方式是从 npm 上安装这些依赖。这不仅简化了管理流程还使得版本控制更加容易。
```bash
npm install library-name --save
```
完成安装后,在页面或组件的 `script` 部分顶部导入所需的模块:
```javascript
import Library from 'library-name';
export default {
mounted() {
this.initLibrary();
},
methods: {
initLibrary(){
new Library({
// 初始化参数...
});
}
}
}
```
这种方式确保了所使用的库仅会在实际需要的地方加载,有助于优化应用性能[^1]。
#### 二、静态资源方式引入外部脚本
如果遇到某些不支持 ES6 模块化的旧版库或者是直接从 CDN 获取的情况,则可以选择将 `<script>` 标签放置于项目的根目录下的 `static` 文件夹中或是直接在线引用CDN链接,并修改 `main.js` 或者特定页面中的代码来动态加载此脚本:
```html
<!-- static/index.html -->
<script src="https://cdn.example.com/library.min.js"></script>
```
或者是在 Vue 组件内部利用钩子函数实现按需加载:
```javascript
mounted () {
const script = document.createElement('script');
script.src = "https://cdn.example.com/library.min.js";
document.head.appendChild(script);
},
beforeDestroy () {
let scripts = document.querySelectorAll('head script[src*="example"]');
Array.prototype.forEach.call(scripts, function(el){
el.parentNode.removeChild(el);
})
}
```
这种方法适用于那些不需要频繁更新也不希望增加构建时间的小型项目[^2]。
#### 三、配置 Webpack 加载器处理特殊类型的库
当涉及到一些特殊的JavaScript库(比如带有样式表或其他资产文件),可能还需要调整 webpack.config.js 来适配不同的loader规则以便能够正常编译运行。通常情况下无需手动编辑webpack配置文件,因为uni-app已经内置了一些常用的loaders;但对于更复杂的需求来说,可以通过创建自定义插件或覆盖默认设置来进行扩展[^3]。
uniapp,修改h5打包名称打包
### 如何在 UniApp 中修改 H5 打包的名称
在 UniApp 开发过程中,如果需要更改默认的 H5 打包名称(通常为 `h5` 文件夹),可以通过调整项目的配置文件来完成这一需求。具体方法如下:
#### 1. 修改基础路径
UniApp 默认会在打包完成后生成一个名为 `h5` 的文件夹作为静态资源的基础路径。为了满足特定项目的需求,可以将其重命名为其他名称,例如 `work` 或者 `yue-yst-bbdb` 等[^1]。
此操作的关键在于确保运行的基础路径与编译后的静态文件所在文件夹一致。因此,在实际部署前需确认该路径已被正确设置并映射至服务器上的目标位置。
#### 2. 配置 manifest.json 文件中的 h5 属性
进入项目的根目录下的 `manifest.json` 文件,找到其中关于 H5 平台的相关配置项。在这里可以直接指定新的输出目录名通过调整 `"outputDir"` 字段实现自定义命名功能[^4]:
```json
{
"h5": {
"outputDir": "customName", // 自定义打包后的文件夹名称
"publicPath": "/customName/",
"router": {
"mode": "hash"
}
}
}
```
上述代码片段展示了如何将最终生成的 HTML 和 CSS/JS 资源存放到名为 `customName` 的新文件夹里,并相应更新公共资源访问路径(`publicPath`)以匹配改动后的结构布局。
注意:当您决定采用不同于标准约定 (`h5`) 的其它标识符时,请务必同步告知团队成员以及后续维护人员有关此项变更的信息;另外还需检查是否有任何地方硬编码依赖于原始默认值的情况存在——比如某些 API 请求可能拼接固定的 `/h5/api...` 类型 URL 地址,则应适时修正这些部分逻辑使其适应最新的结构调整[^2]。
#### 3. 使用环境变量支持动态切换
对于更复杂的场景而言,还可以利用环境变量机制进一步增强灵活性。例如仅在开发阶段引入额外调试工具如 eruda ,而在生产环境中禁用此类插件加载行为:
```javascript
// #ifdef H5
if (process.env.NODE_ENV === 'development') {
document.write('<script src="https://cdn.jsdelivr.net/npm/eruda"></script>');
document.write('<script>eruda.init();</script>');
}
// #endif
```
此处借助条件编译指令实现了根据不同构建模式分别处理的功能分离效果[^3]。
最后一步就是按照常规流程执行打包命令:`npm run build:h5`,等待过程结束后即可获得重新命名过的成果物集合了[^5]。
---
阅读全文
相关推荐













