Vue3使用全局函数或变量的两种常用方式

例如:创建getAction函数,并可以全局使用:

// index.ts
import { http } from '@/utils/axios'
export function getAction (url: string, params: object) {
  return http.request({
    url: url,
    method: 'get',
    params: params
  })
}

方式一:使用依赖注入(provide/inject)

// main.ts
import { createApp } from 'vue'
import App from './App.vue'

const app = createApp(App)
import { getAction } from 'index'
app.provide('getAction', getAction) // 将getAction方法挂载到全局

app.mount('#app')

在要使用的页面注入:

<script setup lang="ts">
import { inject } from 'vue'
const getAction: any = inject('getAction')
</script>

方式二:使用 app.config.globalProperties 和 getCurrentInstance()

  • app.config.globalProperties:一个用于注册能够被应用内所有组件实例访问到的全局属性的对象
  • getCurrentInstance():// 获取当前实例,类似于 vue2 的 this
// main.ts
import { createApp } from 'vue'
import App from './App.vue'

const app = createApp(App)
import { getAction } from 'index'
app.config.globalProperties.$getAction = getAction

app.mount('#app')

 在要使用的页面中使用:

<script setup lang="ts">
import { getCurrentInstance } from 'vue'
const { proxy }: any = getCurrentInstance()
console.log('proxy:', proxy)
console.log('getAction:', proxy.$getAction)
</script>
<think>好的,用户遇到了在使用 `make` 命令时出现“未被识别为可运行程序”的错误,并且需要配置使用 `make html` 构建 HTML 文件的环境。我需要根据用户提供的引用内容以及之前的对话历史来思考解决方案。 首先,用户的问题主要集中在两个部分:解决 `make` 命令不可用的问题,以及正确配置环境来执行 `make html`。根据引用[1]和[2],`make` 通常与构建工具链相关,比如Autoconf生成configure脚本后,用户运行make来编译项目。而用户提到的错误可能是因为系统没有安装make工具,尤其是在Windows环境下。 接下来,用户需要配置构建HTML的环境。之前的回答提到了使用SphinxHugo等工具,但用户现在可能是在不同的上下文中,比如使用Autotools(根据引用[1])者Perl模块安装(引用[2]),者是其他工具如mkyaffsimage(引用[3])。不过用户明确提到了构建HTML,所以更可能涉及文档生成工具,如Sphinx。 现在需要分步骤解决: 1. **解决&#39;make&#39;命令不可用的问题**: - 在Linux/macOS上,通常已经预装了make,但用户可能是在Windows上。这时候需要安装MinGWCygwin,使用WSL。根据引用[2]中提到的Perl模块安装步骤,可能用户是在类Unix系统,但如果是Windows,需要指导安装make。 - 安装方法:建议用户安装MinGW-w64使用Chocolatey安装make。者,如果使用WSL,可以启用Linux子系统。 2. **配置构建环境以使用&#39;make html&#39;**: - 根据之前的回答,需要确保项目中有正确的Makefile规则。例如,Sphinx项目需要定义html目标,如`sphinx-build`命令。用户需要检查项目中的Makefile是否存在,并且是否包含html目标。 - 如果用户的项目是基于Autotools(引用[1]),可能需要先运行configure脚本生成Makefile,然后再执行make html。但通常Autotools生成的Makefile可能没有html目标,除非项目特别配置了文档构建。 - 另外,可能用户的项目需要安装特定的依赖,比如Sphinx(引用之前的回答),者Perl模块(引用[2]),者其他工具如easyocr(引用[4]),但这些可能与生成HTML无关。 3. **验证环境和步骤**: - 确保make安装正确,通过`make --version`检查。 - 检查项目目录是否有Makefile,并查看是否有html目标。 - 确保所有依赖工具已安装,如sphinx-build、hugo等。 - 如果使用Sphinx,需要正确配置conf.py,并安装必要的扩展。 4. **处理常见错误**: - 如果运行make html时报错,可能是路径问题,者依赖缺失。例如,sphinx命令未找到,需要安装sphinx。 - 根据引用[1],configure脚本可能会检测系统特性,如果某些库缺失,configure可能生成不完整的Makefile,导致后续make失败。用户可能需要安装开发库,比如Python头文件其他依赖。 5. **跨平台注意事项**: - 如果用户在Windows上,推荐使用WSL以获得类似Linux的环境,避免路径和工具链问题。 - 确保环境变量设置正确,如PATH中包含make的安装路径。 最后,需要将解决方案分步骤清晰地呈现给用户,涵盖安装make、配置项目环境、执行构建命令以及故障排除。同时,根据用户之前的提问,可能需要补充相关问题,比如如何自定义构建目标处理其他常见错误。</think>### 一、解决 `&#39;make&#39; 未被识别` 错误 #### 1. **安装 make 工具** - **Windows 系统**: 1. 安装 MinGW-w64 MSYS2: ```bash # 使用 Chocolatey(需管理员权限) choco install make ``` 2. 通过 WSL 使用 Linux 环境: ```bash wsl --install -d Ubuntu # 安装 Ubuntu 子系统 ``` 安装后需将 `make` 所在路径(如 `C:\msys64\usr\bin`)加入系统环境变量 `PATH`[^1]。 - **Linux/macOS**: ```bash # Debian/Ubuntu sudo apt install make # macOS(需已安装 Homebrew) brew install make ``` #### 2. **验证安装** ```bash make --version ``` 输出应类似 `GNU Make 4.3`,若仍报错需检查环境变量配置[^1]。 --- ### 二、配置 `make html` 构建环境 #### 1. **项目结构检查** 确保项目目录包含 `Makefile` 文件,且定义了 `html` 目标(以 Sphinx 文档项目为例): ```makefile # Makefile 示例 html: sphinx-build -b html ./docs/source ./docs/build ``` #### 2. **依赖安装** - **Sphinx 文档工具**: ```bash pip install sphinx sphinx-rtd-theme ``` 在 `conf.py` 中配置主题和扩展: ```python extensions = [&#39;sphinx.ext.autodoc&#39;] html_theme = &#39;sphinx_rtd_theme&#39; ``` - **静态站点生成器(如 Hugo)**: ```bash # macOS brew install hugo # Linux sudo apt-get install hugo ``` #### 3. **执行构建** ```bash # 生成 HTML make html # 输出目录通常为 ./build ./docs/build # 清理构建缓存 make clean ``` --- ### 三、常见错误排查 #### 1. **错误:`No rule to make target &#39;html&#39;`** - **原因**:`Makefile` 未定义 `html` 目标。 - **修复**: 1. 检查 `Makefile` 是否包含以下规则: ```makefile html: [构建命令] ``` 2.使用 Autotools(引用[1]),需先运行 `configure` 生成适配系统的 `Makefile`: ```bash ./configure && make html ``` #### 2. **错误:`sphinx-build: command not found`** - **原因**:未安装 Sphinx 未添加到 `PATH`。 - **修复**: ```bash # 全局安装 Sphinx pip install --user sphinx # 添加到 PATH export PATH="$HOME/.local/bin:$PATH" ``` #### 3. **权限问题(如 `make install` 失败)** - **修复**:使用 `sudo` 提升权限(引用[2]): ```bash sudo make install ``` --- ### 四、跨平台构建建议 | 场景 | 解决方案 | |---------------------|----------------------------------| | Windows 原生构建 | 使用 MinGW-w64 + Git Bash | | 复杂项目兼容性要求 | 通过 WSL 运行 Linux 环境 | | 团队协作标准化 | 在 Docker 容器中封装构建环境 | --- ### 五、自动化增强配置 在 `Makefile` 中添加多环境支持(开发/生产): ```makefile # 定义环境变量 ENV ?= dev html: ifeq ($(ENV),prod) sphinx-build -b html -D html_theme=sphinx_rtd_theme ./docs/source ./docs/build else sphinx-build -b html -D html_theme=alabaster ./docs/source ./docs/build endif ``` 调用时指定环境: ```bash make html ENV=prod ``` ---
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

theMuseCatcher

您的支持是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值