应用扩展卸载API

本页引用src/uninstall.js文件,该文件在卸载应用扩展时执行。 并非所有应用扩展都需要卸载-这是可选步骤。

文件的基本结构示例:

module.exports = function (api) {
  // 如下所述的“api”对象
  // 的属性和方法
}

api.engine

包含正在使用的Quasar CLI引擎(作为字符串)。示例:@quasar/app-vite@quasar/app-webpack

api.hasVite

布尔值-是否在@quasar/app-vite上运行。

api.hasWebpack

布尔值-是否在@quasar/app webpack上运行。

api.extId

包含此应用扩展的ext-id(字符串)。

api.prompts

是一个对象,具有在安装此应用扩展后提示的答案。 有关提示的更多信息,请查看提示API

api.resolve

解析此应用扩展运行的应用内的路径。 无需导入path并自己解析路径。

// 解析到应用的根目录
api.resolve.app('src/my-file.js')

// 解析为应用的root/src
api.resolve.src('my-file.js')

// 解析为应用的root/public
// (@quasar/app-webpack v3.4+ 或 @quasar/app-vite v1+)
api.resolve.public('my-image.png')

// 解析为应用的root/src-pwa
api.resolve.pwa('some-file.js')

// 解析为应用的root/src-ssr
api.resolve.ssr('some-file.js')

// 解析为应用的root/src-cordova
api.resolve.cordova('config.xml')

// 解析为应用的root/src-electron
api.resolve.electron('some-file.js')

api.appDir

包含运行此应用扩展的应用根目录的完整路径(字符串)。

api.hasPackage

确定是否通过semver条件在主机应用程序中安装了某些程序包。

semver条件的示例:'1.x || >=2.5.0 || 5.0.0 - 7.2.3'

/**
 * @param {string} 包名
 * @param {string} (可选) semver条件
 * @return {boolean} 软件包已安装且符合可选的semver条件
 */
if (api.hasPackage('vuelidate')) {
  // 嘿,这个应用有它(它的任何版本)
}
if (api.hasPackage('quasar', '^1.0.0')) {
  // 嘿,这个应用已经安装了v1
}

api.hasExtension

检查是否已安装了另一个应用扩展。

/**
 * 检查是否安装了另一个应用扩展
 *
 * @param {string} extId
 * @return {boolean} 已安装扩展
 */
if (api.hasExtension(extId)) {
  // 嘿,我们有它
}

api.getPackageVersion

获取主机应用程序包的版本。

/**
 * @param {string} 包名
 * @return {string|undefined} 应用程序包的版本
 */
console.log( api.getPackageVersion(packageName) )
// 输出例子:
//   1.1.3
//   undefined (当找不到包时)

api.removePath

从应用程序项目文件夹(已安装应用扩展且不再需要)中删除文件或文件夹。

注意,不要删除会破坏开发人员应用的文件。

文件或文件夹的路径必须相对于项目的根文件夹。

/**
  * @param {string} __path
  */
api.removePath('my-folder')

上面的示例从应用程序的根目录中删除“my-folder”。

api.getPersistentConf

获取此扩展的内部持久配置。 如果没有,则返回空对象。

/**
 * @return {object} 配置
 */
api.getPersistentConf()

api.onExitLog

在应用CLI完成应用扩展卸载并即将退出后,添加一条要打印的消息。 可以多次调用以注册多个退出日志。

/**
 * @param {string} 消息
 */
api.onExitLog('Thanks for having used my extension')