mirror of
https://github.com/viarotel-org/escrcpy.git
synced 2024-11-23 23:21:02 +01:00
perf: ⬆️ Update dependencies
This commit is contained in:
parent
3ed1f2551f
commit
8b0386258a
@ -1,5 +1,5 @@
|
|||||||
import which from 'which'
|
|
||||||
import { extraResolve } from '$electron/helpers/index.js'
|
import { extraResolve } from '$electron/helpers/index.js'
|
||||||
|
import which from 'which'
|
||||||
|
|
||||||
export const getGnirehtetPath = () => {
|
export const getGnirehtetPath = () => {
|
||||||
switch (process.platform) {
|
switch (process.platform) {
|
||||||
|
@ -4,9 +4,9 @@ import { buildResolve, extraResolve } from '$electron/helpers/index.js'
|
|||||||
|
|
||||||
export { adbPath } from './android-platform-tools/index.js'
|
export { adbPath } from './android-platform-tools/index.js'
|
||||||
|
|
||||||
export { scrcpyPath } from './scrcpy/index.js'
|
export { gnirehtetApkPath, gnirehtetPath } from './gnirehtet/index.js'
|
||||||
|
|
||||||
export { gnirehtetPath, gnirehtetApkPath } from './gnirehtet/index.js'
|
export { scrcpyPath } from './scrcpy/index.js'
|
||||||
|
|
||||||
export const desktopPath = process.env.DESKTOP_PATH
|
export const desktopPath = process.env.DESKTOP_PATH
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import which from 'which'
|
|
||||||
import { extraResolve } from '$electron/helpers/index.js'
|
import { extraResolve } from '$electron/helpers/index.js'
|
||||||
|
import which from 'which'
|
||||||
|
|
||||||
export const getScrcpyPath = () => {
|
export const getScrcpyPath = () => {
|
||||||
switch (process.platform) {
|
switch (process.platform) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import fs from 'fs-extra'
|
|
||||||
import { dialog, ipcMain, shell } from 'electron'
|
import { dialog, ipcMain, shell } from 'electron'
|
||||||
|
import fs from 'fs-extra'
|
||||||
|
|
||||||
export default (mainWindow) => {
|
export default (mainWindow) => {
|
||||||
ipcMain.handle(
|
ipcMain.handle(
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import { app, ipcMain } from 'electron'
|
import { app, ipcMain } from 'electron'
|
||||||
|
|
||||||
import shortcuts from './shortcuts/index.js'
|
|
||||||
import updater from './updater/index.js'
|
|
||||||
import handles from './handles/index.js'
|
import handles from './handles/index.js'
|
||||||
import tray from './tray/index.js'
|
import shortcuts from './shortcuts/index.js'
|
||||||
import theme from './theme/index.js'
|
import theme from './theme/index.js'
|
||||||
|
import tray from './tray/index.js'
|
||||||
|
import updater from './updater/index.js'
|
||||||
|
|
||||||
export default (mainWindow) => {
|
export default (mainWindow) => {
|
||||||
ipcMain.on('restart-app', () => {
|
ipcMain.on('restart-app', () => {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Menu, Tray, app, dialog } from 'electron'
|
|
||||||
import { trayPath } from '$electron/configs/index.js'
|
import { trayPath } from '$electron/configs/index.js'
|
||||||
import appStore from '$electron/helpers/store.js'
|
|
||||||
import { executeI18n } from '$electron/helpers/index.js'
|
import { executeI18n } from '$electron/helpers/index.js'
|
||||||
|
import appStore from '$electron/helpers/store.js'
|
||||||
|
import { app, dialog, Menu, Tray } from 'electron'
|
||||||
|
|
||||||
export default (mainWindow) => {
|
export default (mainWindow) => {
|
||||||
const t = value => executeI18n(mainWindow, value)
|
const t = value => executeI18n(mainWindow, value)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { app, ipcMain } from 'electron'
|
|
||||||
import { is } from '@electron-toolkit/utils'
|
|
||||||
import electronUpdater from 'electron-updater'
|
|
||||||
import { devPublishPath } from '$electron/configs/index.js'
|
import { devPublishPath } from '$electron/configs/index.js'
|
||||||
|
import { is } from '@electron-toolkit/utils'
|
||||||
|
import { app, ipcMain } from 'electron'
|
||||||
|
import electronUpdater from 'electron-updater'
|
||||||
|
|
||||||
const { autoUpdater } = electronUpdater
|
const { autoUpdater } = electronUpdater
|
||||||
|
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
import util from 'node:util'
|
|
||||||
import { exec as _exec, spawn } from 'node:child_process'
|
import { exec as _exec, spawn } from 'node:child_process'
|
||||||
import path from 'node:path'
|
|
||||||
import fs from 'node:fs'
|
import fs from 'node:fs'
|
||||||
import dayjs from 'dayjs'
|
import path from 'node:path'
|
||||||
import { Adb } from '@devicefarmer/adbkit'
|
import util from 'node:util'
|
||||||
import { uniq } from 'lodash-es'
|
|
||||||
import appStore from '$electron/helpers/store.js'
|
|
||||||
import { adbPath } from '$electron/configs/index.js'
|
import { adbPath } from '$electron/configs/index.js'
|
||||||
|
import appStore from '$electron/helpers/store.js'
|
||||||
import { formatFileSize } from '$renderer/utils/index'
|
import { formatFileSize } from '$renderer/utils/index'
|
||||||
|
import { Adb } from '@devicefarmer/adbkit'
|
||||||
|
import dayjs from 'dayjs'
|
||||||
|
import { uniq } from 'lodash-es'
|
||||||
|
|
||||||
const exec = util.promisify(_exec)
|
const exec = util.promisify(_exec)
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import { spawn } from 'node:child_process'
|
import { spawn } from 'node:child_process'
|
||||||
import appStore from '$electron/helpers/store.js'
|
|
||||||
import {
|
import {
|
||||||
adbPath,
|
adbPath,
|
||||||
gnirehtetApkPath,
|
gnirehtetApkPath,
|
||||||
gnirehtetPath,
|
gnirehtetPath,
|
||||||
} from '$electron/configs/index.js'
|
} from '$electron/configs/index.js'
|
||||||
|
import appStore from '$electron/helpers/store.js'
|
||||||
|
|
||||||
const appDebug = appStore.get('common.debug') || false
|
const appDebug = appStore.get('common.debug') || false
|
||||||
|
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
import path from 'node:path'
|
import path from 'node:path'
|
||||||
|
|
||||||
import '$electron/helpers/console.js'
|
|
||||||
import electron from './electron/index.js'
|
|
||||||
import adbkit from './adbkit/index.js'
|
|
||||||
import scrcpy from './scrcpy/index.js'
|
|
||||||
import gnirehtet from './gnirehtet/index.js'
|
|
||||||
import search from './search/index.js'
|
|
||||||
import * as configs from '$electron/configs/index.js'
|
import * as configs from '$electron/configs/index.js'
|
||||||
import store from '$electron/helpers/store.js'
|
|
||||||
import appLog from '$electron/helpers/log.js'
|
import appLog from '$electron/helpers/log.js'
|
||||||
|
import store from '$electron/helpers/store.js'
|
||||||
|
import adbkit from './adbkit/index.js'
|
||||||
|
import electron from './electron/index.js'
|
||||||
|
import gnirehtet from './gnirehtet/index.js'
|
||||||
|
import scrcpy from './scrcpy/index.js'
|
||||||
|
import search from './search/index.js'
|
||||||
|
import '$electron/helpers/console.js'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
init(expose) {
|
init(expose) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import log from 'electron-log/main.js'
|
|
||||||
import { createProxy } from '$electron/helpers/index'
|
import { createProxy } from '$electron/helpers/index'
|
||||||
|
import log from 'electron-log/main.js'
|
||||||
|
|
||||||
const levels = Object.keys(log.functions)
|
const levels = Object.keys(log.functions)
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import util from 'node:util'
|
|
||||||
import { exec as _exec, spawn } from 'node:child_process'
|
import { exec as _exec, spawn } from 'node:child_process'
|
||||||
import { replaceIP, sleep } from '$renderer/utils/index.js'
|
import util from 'node:util'
|
||||||
import appStore from '$electron/helpers/store.js'
|
|
||||||
import { adbPath, scrcpyPath } from '$electron/configs/index.js'
|
import { adbPath, scrcpyPath } from '$electron/configs/index.js'
|
||||||
|
import appStore from '$electron/helpers/store.js'
|
||||||
|
import { replaceIP, sleep } from '$renderer/utils/index.js'
|
||||||
|
|
||||||
let adbkit
|
let adbkit
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
import { primaryColor } from '$renderer/configs/index.js'
|
||||||
import remote from '@electron/remote'
|
import remote from '@electron/remote'
|
||||||
import { FindInPage } from 'electron-find-in-page'
|
import { FindInPage } from 'electron-find-in-page'
|
||||||
import { primaryColor } from '$renderer/configs/index.js'
|
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
const theme = {
|
const theme = {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import appStore from './store.js'
|
|
||||||
import { createProxy } from './index.js'
|
|
||||||
import log from '$electron/helpers/log.js'
|
import log from '$electron/helpers/log.js'
|
||||||
|
import { createProxy } from './index.js'
|
||||||
|
import appStore from './store.js'
|
||||||
|
|
||||||
const debug = appStore.get('common.debug') || false
|
const debug = appStore.get('common.debug') || false
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
import { createProxy } from '$electron/helpers/index'
|
||||||
import { shell } from 'electron'
|
import { shell } from 'electron'
|
||||||
import log from 'electron-log/main.js'
|
import log from 'electron-log/main.js'
|
||||||
import { createProxy } from '$electron/helpers/index'
|
|
||||||
|
|
||||||
log.transports.console.level = false
|
log.transports.console.level = false
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/** 在主进程中获取关键信息存储到环境变量中,从而在预加载脚本中及渲染进程中使用 */
|
/** 在主进程中获取关键信息存储到环境变量中,从而在预加载脚本中及渲染进程中使用 */
|
||||||
|
import { app } from 'electron'
|
||||||
|
|
||||||
/** 注意: app.isPackaged 可能被被某些方法改变所以请将该文件放到 main.js 必须位于非依赖项的顶部 */
|
/** 注意: app.isPackaged 可能被被某些方法改变所以请将该文件放到 main.js 必须位于非依赖项的顶部 */
|
||||||
import fixPath from 'fix-path'
|
import fixPath from 'fix-path'
|
||||||
|
|
||||||
import { app } from 'electron'
|
|
||||||
|
|
||||||
if (process.platform === 'darwin') {
|
if (process.platform === 'darwin') {
|
||||||
fixPath()
|
fixPath()
|
||||||
}
|
}
|
||||||
|
@ -1,23 +1,23 @@
|
|||||||
import path from 'node:path'
|
|
||||||
import { createRequire } from 'node:module'
|
import { createRequire } from 'node:module'
|
||||||
|
import path from 'node:path'
|
||||||
import { fileURLToPath } from 'node:url'
|
import { fileURLToPath } from 'node:url'
|
||||||
|
|
||||||
import { BrowserWindow, app, nativeTheme, shell } from 'electron'
|
|
||||||
import { electronApp, optimizer } from '@electron-toolkit/utils'
|
|
||||||
import contextMenu from 'electron-context-menu'
|
|
||||||
import remote from '@electron/remote/main'
|
import remote from '@electron/remote/main'
|
||||||
|
import { electronApp, optimizer } from '@electron-toolkit/utils'
|
||||||
|
import { app, BrowserWindow, shell } from 'electron'
|
||||||
|
import contextMenu from 'electron-context-menu'
|
||||||
|
|
||||||
|
import { icnsLogoPath, icoLogoPath, logoPath } from './configs/index.js'
|
||||||
|
import events from './events/index.js'
|
||||||
|
|
||||||
|
import log from './helpers/log.js'
|
||||||
|
import appStore from './helpers/store.js'
|
||||||
|
|
||||||
// process.js 必须位于非依赖项的顶部
|
// process.js 必须位于非依赖项的顶部
|
||||||
import './helpers/process.js'
|
import './helpers/process.js'
|
||||||
import appStore from './helpers/store.js'
|
|
||||||
|
|
||||||
import log from './helpers/log.js'
|
|
||||||
import './helpers/console.js'
|
import './helpers/console.js'
|
||||||
|
|
||||||
import { icnsLogoPath, icoLogoPath, logoPath } from './configs/index.js'
|
|
||||||
|
|
||||||
import events from './events/index.js'
|
|
||||||
|
|
||||||
const require = createRequire(import.meta.url)
|
const require = createRequire(import.meta.url)
|
||||||
const __dirname = path.dirname(fileURLToPath(import.meta.url))
|
const __dirname = path.dirname(fileURLToPath(import.meta.url))
|
||||||
|
|
||||||
|
@ -56,6 +56,10 @@ export default antfu(
|
|||||||
'vue/custom-event-name-casing': 'off',
|
'vue/custom-event-name-casing': 'off',
|
||||||
'vue/no-use-v-if-with-v-for': 'off',
|
'vue/no-use-v-if-with-v-for': 'off',
|
||||||
'vue/component-tags-order': 'off',
|
'vue/component-tags-order': 'off',
|
||||||
|
|
||||||
|
'unicorn/consistent-function-scoping': 'off',
|
||||||
|
'regexp/no-unused-capturing-group': 'off',
|
||||||
|
'regexp/no-dupe-disjunctions': 'off',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
86
package.json
86
package.json
@ -22,50 +22,50 @@
|
|||||||
"prepare": "husky install"
|
"prepare": "husky install"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"electron-in-page-search": "^1.3.2",
|
"electron-in-page-search": "1.3.2",
|
||||||
"nanoid": "^5.0.7",
|
"nanoid": "5.0.7",
|
||||||
"pinia-plugin-persistedstate": "^3.2.1",
|
"pinia-plugin-persistedstate": "3.2.1",
|
||||||
"vue": "^3.4.26"
|
"vue": "3.4.26"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@antfu/eslint-config": "2.16.1",
|
"@antfu/eslint-config": "3.3.2",
|
||||||
"@devicefarmer/adbkit": "^3.2.6",
|
"@devicefarmer/adbkit": "3.2.6",
|
||||||
"@electron-toolkit/preload": "^3.0.1",
|
"@electron-toolkit/preload": "3.0.1",
|
||||||
"@electron-toolkit/utils": "^3.0.0",
|
"@electron-toolkit/utils": "3.0.0",
|
||||||
"@electron/remote": "^2.1.2",
|
"@electron/remote": "2.1.2",
|
||||||
"@intlify/unplugin-vue-i18n": "^4.0.0",
|
"@intlify/unplugin-vue-i18n": "4.0.0",
|
||||||
"@unocss/reset": "^0.59.4",
|
"@unocss/reset": "0.59.4",
|
||||||
"@unocss/transformer-directives": "^0.59.4",
|
"@unocss/transformer-directives": "0.59.4",
|
||||||
"@viarotel-org/unocss-preset-shades": "^0.8.2",
|
"@viarotel-org/unocss-preset-shades": "0.8.2",
|
||||||
"@vitejs/plugin-vue": "^5.0.4",
|
"@vitejs/plugin-vue": "5.0.4",
|
||||||
"@vueuse/core": "^10.9.0",
|
"@vueuse/core": "10.9.0",
|
||||||
"dayjs": "^1.11.11",
|
"dayjs": "1.11.11",
|
||||||
"electron": "^30.0.3",
|
"electron": "30.0.3",
|
||||||
"electron-builder": "^24.13.3",
|
"electron-builder": "24.13.3",
|
||||||
"electron-context-menu": "^4.0.0",
|
"electron-context-menu": "4.0.0",
|
||||||
"electron-find-in-page": "^1.0.8",
|
"electron-find-in-page": "1.0.8",
|
||||||
"electron-log": "^5.1.2",
|
"electron-log": "5.1.2",
|
||||||
"electron-store": "^9.0.0",
|
"electron-store": "9.0.0",
|
||||||
"electron-updater": "^6.1.8",
|
"electron-updater": "6.1.8",
|
||||||
"element-plus": "^2.8.1",
|
"element-plus": "2.8.2",
|
||||||
"eslint": "^8.57.0",
|
"eslint": "9.10.0",
|
||||||
"fix-path": "^4.0.0",
|
"fix-path": "4.0.0",
|
||||||
"fs-extra": "^11.2.0",
|
"fs-extra": "11.2.0",
|
||||||
"husky": "^9.0.11",
|
"husky": "9.0.11",
|
||||||
"lodash-es": "^4.17.21",
|
"lodash-es": "4.17.21",
|
||||||
"pinia": "^2.1.7",
|
"pinia": "2.1.7",
|
||||||
"postcss": "^8.4.38",
|
"postcss": "8.4.38",
|
||||||
"postcss-nested": "^6.0.1",
|
"postcss-nested": "6.0.1",
|
||||||
"postcss-scss": "^4.0.9",
|
"postcss-scss": "4.0.9",
|
||||||
"unocss": "^0.59.4",
|
"unocss": "0.59.4",
|
||||||
"unplugin-auto-import": "^0.17.5",
|
"unplugin-auto-import": "0.17.5",
|
||||||
"unplugin-vue-components": "^0.27.0",
|
"unplugin-vue-components": "0.27.0",
|
||||||
"vite": "^5.2.11",
|
"vite": "5.2.11",
|
||||||
"vite-plugin-electron": "^0.28.7",
|
"vite-plugin-electron": "0.28.7",
|
||||||
"vite-plugin-electron-renderer": "^0.14.5",
|
"vite-plugin-electron-renderer": "0.14.5",
|
||||||
"vite-svg-loader": "^5.1.0",
|
"vite-svg-loader": "5.1.0",
|
||||||
"vue-command": "^35.2.1",
|
"vue-command": "35.2.1",
|
||||||
"vue-i18n": "^9.13.1",
|
"vue-i18n": "9.13.1",
|
||||||
"which": "^4.0.0"
|
"which": "4.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
16
src/App.vue
16
src/App.vue
@ -37,19 +37,19 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import { i18n } from '$/locales/index.js'
|
||||||
|
|
||||||
|
import localeModel from '$/plugins/element-plus/locale.js'
|
||||||
|
import { usePreferenceStore } from '$/store/preference/index.js'
|
||||||
|
import { useThemeStore } from '$/store/theme/index.js'
|
||||||
import { ElMessageBox } from 'element-plus'
|
import { ElMessageBox } from 'element-plus'
|
||||||
|
|
||||||
import Device from './components/Device/index.vue'
|
|
||||||
import Preference from './components/Preference/index.vue'
|
|
||||||
import About from './components/About/index.vue'
|
import About from './components/About/index.vue'
|
||||||
|
import Device from './components/Device/index.vue'
|
||||||
|
|
||||||
|
import Preference from './components/Preference/index.vue'
|
||||||
import Quick from './components/Quick/index.vue'
|
import Quick from './components/Quick/index.vue'
|
||||||
|
|
||||||
import { i18n } from '$/locales/index.js'
|
|
||||||
import localeModel from '$/plugins/element-plus/locale.js'
|
|
||||||
|
|
||||||
import { useThemeStore } from '$/store/theme/index.js'
|
|
||||||
import { usePreferenceStore } from '$/store/preference/index.js'
|
|
||||||
|
|
||||||
const locale = computed(() => {
|
const locale = computed(() => {
|
||||||
const i18nLocale = i18n.global.locale.value
|
const i18nLocale = i18n.global.locale.value
|
||||||
|
|
||||||
|
@ -5,10 +5,10 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { useTaskStore } from '$/store/index.js'
|
|
||||||
|
|
||||||
import { useScreenshotAction } from '$/composables/useScreenshotAction/index.js'
|
import { useScreenshotAction } from '$/composables/useScreenshotAction/index.js'
|
||||||
|
|
||||||
|
import { useTaskStore } from '$/store/index.js'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
devices: {
|
devices: {
|
||||||
type: Array,
|
type: Array,
|
||||||
|
@ -162,7 +162,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ElMessage } from 'element-plus'
|
import InputPath from '$/components/Preference/components/PreferenceForm/components/InputPath/index.vue'
|
||||||
|
|
||||||
import {
|
import {
|
||||||
timeUnit as intervalModel,
|
timeUnit as intervalModel,
|
||||||
@ -172,7 +172,7 @@ import {
|
|||||||
import { useTaskStore } from '$/store/index.js'
|
import { useTaskStore } from '$/store/index.js'
|
||||||
import { sleep } from '$/utils'
|
import { sleep } from '$/utils'
|
||||||
|
|
||||||
import InputPath from '$/components/Preference/components/PreferenceForm/components/InputPath/index.vue'
|
import { ElMessage } from 'element-plus'
|
||||||
|
|
||||||
const taskStore = useTaskStore()
|
const taskStore = useTaskStore()
|
||||||
|
|
||||||
|
@ -39,8 +39,8 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import Application from './Application/index.vue'
|
import Application from './Application/index.vue'
|
||||||
import Screenshot from './Screenshot/index.vue'
|
|
||||||
import FileManage from './FileManage/index.vue'
|
import FileManage from './FileManage/index.vue'
|
||||||
|
import Screenshot from './Screenshot/index.vue'
|
||||||
import Shell from './Shell/index.vue'
|
import Shell from './Shell/index.vue'
|
||||||
import Tasks from './Tasks/index.vue'
|
import Tasks from './Tasks/index.vue'
|
||||||
|
|
||||||
|
@ -166,12 +166,12 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ElMessageBox } from 'element-plus'
|
import { useDialog, useFileActions } from '$/composables/index.js'
|
||||||
import AddPopover from './AddPopover/index.vue'
|
|
||||||
|
|
||||||
import { usePreferenceStore } from '$/store'
|
import { usePreferenceStore } from '$/store'
|
||||||
|
|
||||||
import { useDialog, useFileActions } from '$/composables/index.js'
|
import { ElMessageBox } from 'element-plus'
|
||||||
|
|
||||||
|
import AddPopover from './AddPopover/index.vue'
|
||||||
|
|
||||||
const preferenceStore = usePreferenceStore()
|
const preferenceStore = usePreferenceStore()
|
||||||
|
|
||||||
|
@ -65,15 +65,15 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Screenshot from './Screenshot/index.vue'
|
|
||||||
import Application from './Application/index.vue'
|
import Application from './Application/index.vue'
|
||||||
|
import FileManage from './FileManage/index.vue'
|
||||||
import Gnirehtet from './Gnirehtet/index.vue'
|
import Gnirehtet from './Gnirehtet/index.vue'
|
||||||
import MirrorGroup from './MirrorGroup/index.vue'
|
import MirrorGroup from './MirrorGroup/index.vue'
|
||||||
import Rotation from './Rotation/index.vue'
|
import Rotation from './Rotation/index.vue'
|
||||||
import Volume from './Volume/index.vue'
|
import Screenshot from './Screenshot/index.vue'
|
||||||
import FileManage from './FileManage/index.vue'
|
|
||||||
import Shell from './Shell/index.vue'
|
import Shell from './Shell/index.vue'
|
||||||
import Tasks from './Tasks/index.vue'
|
import Tasks from './Tasks/index.vue'
|
||||||
|
import Volume from './Volume/index.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
@ -31,10 +31,10 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { usePreferenceStore } from '$/store/index.js'
|
|
||||||
|
|
||||||
import PreferenceForm from '$/components/Preference/components/PreferenceForm/index.vue'
|
import PreferenceForm from '$/components/Preference/components/PreferenceForm/index.vue'
|
||||||
|
|
||||||
|
import { usePreferenceStore } from '$/store/index.js'
|
||||||
|
|
||||||
import { sleep } from '$/utils'
|
import { sleep } from '$/utils'
|
||||||
|
|
||||||
const emit = defineEmits(['success'])
|
const emit = defineEmits(['success'])
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import DeployDialog from './components/DeployDialog/index.vue'
|
|
||||||
import { sleep } from '$/utils'
|
import { sleep } from '$/utils'
|
||||||
|
import DeployDialog from './components/DeployDialog/index.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
@ -38,10 +38,10 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Record from './components/Record/index.vue'
|
|
||||||
import Otg from './components/Otg/index.vue'
|
|
||||||
import Camera from './components/Camera/index.vue'
|
import Camera from './components/Camera/index.vue'
|
||||||
import Custom from './components/Custom/index.vue'
|
import Custom from './components/Custom/index.vue'
|
||||||
|
import Otg from './components/Otg/index.vue'
|
||||||
|
import Record from './components/Record/index.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
@ -115,15 +115,15 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { isIPWithPort, sleep } from '$/utils/index.js'
|
||||||
|
import BatchActions from './components/BatchActions/index.vue'
|
||||||
import ControlBar from './components/ControlBar/index.vue'
|
import ControlBar from './components/ControlBar/index.vue'
|
||||||
import Remark from './components/Remark/index.vue'
|
|
||||||
import WirelessGroup from './components/WirelessGroup/index.vue'
|
|
||||||
import MirrorAction from './components/MirrorAction/index.vue'
|
import MirrorAction from './components/MirrorAction/index.vue'
|
||||||
import MoreDropdown from './components/MoreDropdown/index.vue'
|
import MoreDropdown from './components/MoreDropdown/index.vue'
|
||||||
|
import Remark from './components/Remark/index.vue'
|
||||||
import WirelessAction from './components/WirelessAction/index.vue'
|
import WirelessAction from './components/WirelessAction/index.vue'
|
||||||
import BatchActions from './components/BatchActions/index.vue'
|
|
||||||
|
|
||||||
import { isIPWithPort, sleep } from '$/utils/index.js'
|
import WirelessGroup from './components/WirelessGroup/index.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
@ -91,12 +91,12 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import { usePreferenceStore } from '$/store/index.js'
|
||||||
|
|
||||||
import { omit } from 'lodash-es'
|
import { omit } from 'lodash-es'
|
||||||
|
|
||||||
import { inputModel } from './components/index.js'
|
import { inputModel } from './components/index.js'
|
||||||
|
|
||||||
import { usePreferenceStore } from '$/store/index.js'
|
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
deviceScope: {
|
deviceScope: {
|
||||||
type: String,
|
type: String,
|
||||||
|
@ -39,12 +39,12 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { debounce } from 'lodash-es'
|
import { usePreferenceStore } from '$/store/index.js'
|
||||||
|
|
||||||
import ScopeSelect from './components/ScopeSelect/index.vue'
|
import { debounce } from 'lodash-es'
|
||||||
import PreferenceForm from './components/PreferenceForm/index.vue'
|
import PreferenceForm from './components/PreferenceForm/index.vue'
|
||||||
|
|
||||||
import { usePreferenceStore } from '$/store/index.js'
|
import ScopeSelect from './components/ScopeSelect/index.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
@ -5,10 +5,10 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { useMagicKeys, whenever } from '@vueuse/core'
|
|
||||||
|
|
||||||
import { useThemeStore } from '$/store/theme/index.js'
|
import { useThemeStore } from '$/store/theme/index.js'
|
||||||
|
|
||||||
|
import { useMagicKeys, whenever } from '@vueuse/core'
|
||||||
|
|
||||||
const themeStore = useThemeStore()
|
const themeStore = useThemeStore()
|
||||||
|
|
||||||
const activeTab = inject('activeTab')
|
const activeTab = inject('activeTab')
|
||||||
|
@ -156,18 +156,12 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ElMessage } from 'element-plus'
|
import { getDictLabel } from '$/dicts/helper'
|
||||||
import dayjs from 'dayjs'
|
|
||||||
|
|
||||||
import {
|
|
||||||
timeUnit as intervalModel,
|
|
||||||
timerType as timerModel,
|
|
||||||
} from '$/dicts/index.js'
|
|
||||||
|
|
||||||
import { useTaskStore } from '$/store/index.js'
|
import { useTaskStore } from '$/store/index.js'
|
||||||
import { sleep } from '$/utils'
|
import { sleep } from '$/utils'
|
||||||
|
|
||||||
import { getDictLabel } from '$/dicts/helper'
|
import dayjs from 'dayjs'
|
||||||
|
|
||||||
const taskStore = useTaskStore()
|
const taskStore = useTaskStore()
|
||||||
|
|
||||||
|
@ -38,18 +38,18 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import { useTaskStore, useThemeStore } from '$/store/index.js'
|
||||||
|
import { sleep } from '$/utils/index.js'
|
||||||
|
import { ElMessage } from 'element-plus'
|
||||||
import VueCommand, {
|
import VueCommand, {
|
||||||
createQuery,
|
createQuery,
|
||||||
createStdout,
|
createStdout,
|
||||||
listFormatter,
|
listFormatter,
|
||||||
} from 'vue-command'
|
} from 'vue-command'
|
||||||
import 'vue-command/dist/vue-command.css'
|
|
||||||
import { ElMessage } from 'element-plus'
|
|
||||||
import { useAdb } from './composables/adb-async.js'
|
import { useAdb } from './composables/adb-async.js'
|
||||||
import { useScrcpy } from './composables/scrcpy.js'
|
|
||||||
import { useGnirehtet } from './composables/gnirehtet.js'
|
import { useGnirehtet } from './composables/gnirehtet.js'
|
||||||
import { sleep } from '$/utils/index.js'
|
import { useScrcpy } from './composables/scrcpy.js'
|
||||||
import { useTaskStore, useThemeStore } from '$/store/index.js'
|
import 'vue-command/dist/vue-command.css'
|
||||||
|
|
||||||
const themeStore = useThemeStore()
|
const themeStore = useThemeStore()
|
||||||
const taskStore = useTaskStore()
|
const taskStore = useTaskStore()
|
||||||
|
@ -42,11 +42,11 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import Task from './components/Task/index.vue'
|
|
||||||
import Terminal from './components/Terminal/index.vue'
|
|
||||||
import Log from './components/Log/index.vue'
|
import Log from './components/Log/index.vue'
|
||||||
import Restart from './components/Restart/index.vue'
|
import Restart from './components/Restart/index.vue'
|
||||||
import Search from './components/Search/index.vue'
|
import Search from './components/Search/index.vue'
|
||||||
|
import Task from './components/Task/index.vue'
|
||||||
|
import Terminal from './components/Terminal/index.vue'
|
||||||
|
|
||||||
const props = defineProps({})
|
const props = defineProps({})
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { ElMessage } from 'element-plus'
|
|
||||||
import { allSettledWrapper } from '$/utils'
|
|
||||||
import { useDeviceStore } from '$/store'
|
import { useDeviceStore } from '$/store'
|
||||||
|
import { allSettledWrapper } from '$/utils'
|
||||||
|
import { ElMessage } from 'element-plus'
|
||||||
|
|
||||||
export function useFileActions() {
|
export function useFileActions() {
|
||||||
const deviceStore = useDeviceStore()
|
const deviceStore = useDeviceStore()
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { ElMessage } from 'element-plus'
|
import { useDeviceStore } from '$/store'
|
||||||
|
|
||||||
import { allSettledWrapper } from '$/utils'
|
import { allSettledWrapper } from '$/utils'
|
||||||
|
|
||||||
import { useDeviceStore } from '$/store'
|
import { ElMessage } from 'element-plus'
|
||||||
|
|
||||||
export function useInstallAction() {
|
export function useInstallAction() {
|
||||||
const deviceStore = useDeviceStore()
|
const deviceStore = useDeviceStore()
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { ElMessage } from 'element-plus'
|
import { useDeviceStore, usePreferenceStore } from '$/store'
|
||||||
|
|
||||||
import { allSettledWrapper } from '$/utils/index.js'
|
import { allSettledWrapper } from '$/utils/index.js'
|
||||||
|
|
||||||
import { useDeviceStore, usePreferenceStore } from '$/store'
|
import { ElMessage } from 'element-plus'
|
||||||
|
|
||||||
export function useScreenshotAction() {
|
export function useScreenshotAction() {
|
||||||
const deviceStore = useDeviceStore()
|
const deviceStore = useDeviceStore()
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
|
||||||
|
|
||||||
import { allSettledWrapper } from '$/utils/index.js'
|
|
||||||
import { selectAndSendFileToDevice } from '$/utils/device/index.js'
|
|
||||||
import { useTaskStore } from '$/store'
|
import { useTaskStore } from '$/store'
|
||||||
|
|
||||||
|
import { selectAndSendFileToDevice } from '$/utils/device/index.js'
|
||||||
|
import { allSettledWrapper } from '$/utils/index.js'
|
||||||
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
|
|
||||||
export function useShellAction() {
|
export function useShellAction() {
|
||||||
const taskStore = useTaskStore()
|
const taskStore = useTaskStore()
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { createI18n } from 'vue-i18n'
|
|
||||||
import messages from '@intlify/unplugin-vue-i18n/messages'
|
import messages from '@intlify/unplugin-vue-i18n/messages'
|
||||||
|
import { createI18n } from 'vue-i18n'
|
||||||
|
|
||||||
export const locale
|
export const locale
|
||||||
= window.appStore?.get('common.language') || window.navigator.language
|
= window.appStore?.get('common.language') || window.navigator.language
|
||||||
|
10
src/main.js
10
src/main.js
@ -1,16 +1,16 @@
|
|||||||
import '$/utils/console.js'
|
import { replaceIP, restoreIP } from '$/utils/index.js'
|
||||||
|
|
||||||
import { createApp, toRaw } from 'vue'
|
import { createApp, toRaw } from 'vue'
|
||||||
import App from './App.vue'
|
import App from './App.vue'
|
||||||
|
|
||||||
import store from './store/index.js'
|
|
||||||
|
|
||||||
import plugins from './plugins/index.js'
|
|
||||||
import icons from './icons/index.js'
|
import icons from './icons/index.js'
|
||||||
|
|
||||||
import { i18n, t } from './locales/index.js'
|
import { i18n, t } from './locales/index.js'
|
||||||
|
import plugins from './plugins/index.js'
|
||||||
|
|
||||||
import { replaceIP, restoreIP } from '$/utils/index.js'
|
import store from './store/index.js'
|
||||||
|
|
||||||
|
import '$/utils/console.js'
|
||||||
|
|
||||||
import 'virtual:uno.css'
|
import 'virtual:uno.css'
|
||||||
import './styles/index.js'
|
import './styles/index.js'
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { ElForm } from 'element-plus'
|
|
||||||
import { inheritComponentMethods } from '$/utils/index.js'
|
import { inheritComponentMethods } from '$/utils/index.js'
|
||||||
|
import { ElForm } from 'element-plus'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'ElFormRow',
|
name: 'ElFormRow',
|
||||||
|
@ -1,22 +1,22 @@
|
|||||||
|
import * as ElementPlusIcons from '@element-plus/icons-vue'
|
||||||
|
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'
|
||||||
|
import EleFormItemCol from './expands/EleFormItemCol/index.vue'
|
||||||
|
import EleFormRow from './expands/EleFormRow/index.vue'
|
||||||
|
|
||||||
|
import EleIconLoading from './expands/EleIconLoading/index.vue'
|
||||||
|
import EleTagCollapse from './expands/EleTagCollapse/index.vue'
|
||||||
|
|
||||||
|
import EleTagDict from './expands/EleTagDict/index.vue'
|
||||||
|
|
||||||
|
import EleTooltipButton from './expands/EleTooltipButton/index.vue'
|
||||||
|
|
||||||
import 'element-plus/theme-chalk/el-loading.css'
|
import 'element-plus/theme-chalk/el-loading.css'
|
||||||
import 'element-plus/theme-chalk/el-message.css'
|
import 'element-plus/theme-chalk/el-message.css'
|
||||||
import 'element-plus/theme-chalk/el-message-box.css'
|
import 'element-plus/theme-chalk/el-message-box.css'
|
||||||
import 'element-plus/theme-chalk/el-badge.css'
|
import 'element-plus/theme-chalk/el-badge.css'
|
||||||
|
|
||||||
import 'element-plus/theme-chalk/dark/css-vars.css'
|
import 'element-plus/theme-chalk/dark/css-vars.css'
|
||||||
import './restyle.css'
|
import './restyle.css'
|
||||||
|
|
||||||
import * as ElementPlusIcons from '@element-plus/icons-vue'
|
|
||||||
|
|
||||||
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'
|
|
||||||
|
|
||||||
import EleIconLoading from './expands/EleIconLoading/index.vue'
|
|
||||||
import EleFormRow from './expands/EleFormRow/index.vue'
|
|
||||||
import EleFormItemCol from './expands/EleFormItemCol/index.vue'
|
|
||||||
import EleTooltipButton from './expands/EleTooltipButton/index.vue'
|
|
||||||
import EleTagDict from './expands/EleTagDict/index.vue'
|
|
||||||
import EleTagCollapse from './expands/EleTagCollapse/index.vue'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
install(app) {
|
install(app) {
|
||||||
for (const [key, component] of Object.entries(ElementPlusIcons)) {
|
for (const [key, component] of Object.entries(ElementPlusIcons)) {
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import { defineStore } from 'pinia'
|
|
||||||
import dayjs from 'dayjs'
|
|
||||||
|
|
||||||
import { t } from '$/locales/index.js'
|
import { t } from '$/locales/index.js'
|
||||||
import { isIPWithPort, replaceIP } from '$/utils/index.js'
|
import { isIPWithPort, replaceIP } from '$/utils/index.js'
|
||||||
|
|
||||||
|
import dayjs from 'dayjs'
|
||||||
|
import { defineStore } from 'pinia'
|
||||||
|
|
||||||
const $appStore = window.appStore
|
const $appStore = window.appStore
|
||||||
|
|
||||||
export const useDeviceStore = defineStore({
|
export const useDeviceStore = defineStore({
|
||||||
|
@ -2,10 +2,10 @@ import { createPinia } from 'pinia'
|
|||||||
import persistedState from 'pinia-plugin-persistedstate'
|
import persistedState from 'pinia-plugin-persistedstate'
|
||||||
import { useDeviceStore } from './device/index.js'
|
import { useDeviceStore } from './device/index.js'
|
||||||
import { usePreferenceStore } from './preference/index.js'
|
import { usePreferenceStore } from './preference/index.js'
|
||||||
import { useThemeStore } from './theme/index.js'
|
|
||||||
import { useTaskStore } from './task/index.js'
|
import { useTaskStore } from './task/index.js'
|
||||||
|
import { useThemeStore } from './theme/index.js'
|
||||||
|
|
||||||
export { useDeviceStore, usePreferenceStore, useThemeStore, useTaskStore }
|
export { useDeviceStore, usePreferenceStore, useTaskStore, useThemeStore }
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
install(app) {
|
install(app) {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { defineStore } from 'pinia'
|
import { replaceIP, restoreIP } from '$/utils/index.js'
|
||||||
import { cloneDeep, get, pickBy, set } from 'lodash-es'
|
import { cloneDeep, get, pickBy, set } from 'lodash-es'
|
||||||
import model from './model/index.js'
|
import { defineStore } from 'pinia'
|
||||||
|
|
||||||
import {
|
import {
|
||||||
getDefaultData,
|
getDefaultData,
|
||||||
@ -11,7 +11,7 @@ import {
|
|||||||
setStoreData,
|
setStoreData,
|
||||||
} from './helpers/index.js'
|
} from './helpers/index.js'
|
||||||
|
|
||||||
import { replaceIP, restoreIP } from '$/utils/index.js'
|
import model from './model/index.js'
|
||||||
|
|
||||||
const { adbPath, scrcpyPath, gnirehtetPath } = window.electron?.configs || {}
|
const { adbPath, scrcpyPath, gnirehtetPath } = window.electron?.configs || {}
|
||||||
|
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
// import otg from './otg/index.js'
|
// import otg from './otg/index.js'
|
||||||
import common from './common/index.js'
|
|
||||||
import video from './video/index.js'
|
|
||||||
import device from './device/index.js'
|
|
||||||
import window from './window/index.js'
|
|
||||||
import audio from './audio/index.js'
|
import audio from './audio/index.js'
|
||||||
import record from './record/index.js'
|
|
||||||
import input from './input/index.js'
|
|
||||||
import camera from './camera/index.js'
|
import camera from './camera/index.js'
|
||||||
|
import common from './common/index.js'
|
||||||
|
import device from './device/index.js'
|
||||||
|
import input from './input/index.js'
|
||||||
|
import record from './record/index.js'
|
||||||
|
import video from './video/index.js'
|
||||||
|
import window from './window/index.js'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
// otg,
|
// otg,
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
import { defineStore } from 'pinia'
|
import { clearTimer, setTimer } from '$/utils/index.js'
|
||||||
|
|
||||||
import dayjs from 'dayjs'
|
|
||||||
import duration from 'dayjs/plugin/duration'
|
|
||||||
|
|
||||||
import { nanoid } from 'nanoid'
|
|
||||||
|
|
||||||
import { useEventBus } from '@vueuse/core'
|
import { useEventBus } from '@vueuse/core'
|
||||||
|
import dayjs from 'dayjs'
|
||||||
|
|
||||||
|
import duration from 'dayjs/plugin/duration'
|
||||||
|
|
||||||
import { ElMessage } from 'element-plus'
|
import { ElMessage } from 'element-plus'
|
||||||
import { clearTimer, isIPWithPort, replaceIP, setTimer } from '$/utils/index.js'
|
|
||||||
|
import { nanoid } from 'nanoid'
|
||||||
|
import { defineStore } from 'pinia'
|
||||||
|
|
||||||
dayjs.extend(duration)
|
dayjs.extend(duration)
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { ElMessage } from 'element-plus'
|
|
||||||
import { allSettledWrapper, sleep } from '$/utils'
|
import { allSettledWrapper, sleep } from '$/utils'
|
||||||
|
import { ElMessage } from 'element-plus'
|
||||||
/**
|
/**
|
||||||
* 选择并将文件发送到设备
|
* 选择并将文件发送到设备
|
||||||
*/
|
*/
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { defineConfig, presetWind } from 'unocss'
|
|
||||||
import transformerDirectives from '@unocss/transformer-directives'
|
import transformerDirectives from '@unocss/transformer-directives'
|
||||||
import { presetShades } from '@viarotel-org/unocss-preset-shades'
|
import { presetShades } from '@viarotel-org/unocss-preset-shades'
|
||||||
|
import { defineConfig, presetWind } from 'unocss'
|
||||||
import { primaryColor } from './src/configs/index.js'
|
import { primaryColor } from './src/configs/index.js'
|
||||||
|
|
||||||
const presetMain = presetWind()
|
const presetMain = presetWind()
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
import { resolve } from 'node:path'
|
import { resolve } from 'node:path'
|
||||||
import { defineConfig, mergeConfig } from 'vite'
|
import useI18n from '@intlify/unplugin-vue-i18n/vite'
|
||||||
import useElectron from 'vite-plugin-electron/simple'
|
|
||||||
import useRenderer from 'vite-plugin-electron-renderer'
|
|
||||||
import { notBundle } from 'vite-plugin-electron/plugin'
|
|
||||||
|
|
||||||
import useVue from '@vitejs/plugin-vue'
|
import useVue from '@vitejs/plugin-vue'
|
||||||
import useUnoCSS from 'unocss/vite'
|
import useUnoCSS from 'unocss/vite'
|
||||||
|
import { defineConfig, mergeConfig } from 'vite'
|
||||||
|
|
||||||
|
import { notBundle } from 'vite-plugin-electron/plugin'
|
||||||
|
import useElectron from 'vite-plugin-electron/simple'
|
||||||
|
import useRenderer from 'vite-plugin-electron-renderer'
|
||||||
import useSvg from 'vite-svg-loader'
|
import useSvg from 'vite-svg-loader'
|
||||||
import useI18n from '@intlify/unplugin-vue-i18n/vite'
|
|
||||||
|
|
||||||
import postcssConfig from './postcss.config.js'
|
import postcssConfig from './postcss.config.js'
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user