提交 a5b147f0 authored 作者: 蔡芬's avatar 蔡芬

获取

上级 2c08361f
{ {
"name": "feidao", "name": "menudock",
"version": "1.0.0", "version": "1.0.0",
"private": true, "private": true,
"description": "菜单平台", "description": "菜单平台",
...@@ -68,6 +68,7 @@ ...@@ -68,6 +68,7 @@
"electron": "^13.6.9", "electron": "^13.6.9",
"electron-chromedriver": "^20.0.0", "electron-chromedriver": "^20.0.0",
"electron-devtools-installer": "^3.1.0", "electron-devtools-installer": "^3.1.0",
"electron-store": "^8.1.0",
"eslint": "^6.7.2", "eslint": "^6.7.2",
"eslint-plugin-prettier": "^3.3.1", "eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-vue": "^6.2.2", "eslint-plugin-vue": "^6.2.2",
......
import { ipcMain, dialog, Menu, BrowserWindow } from 'electron' import { ipcMain, dialog, Menu, BrowserWindow } from 'electron'
import { saveJson } from '@/libs/utils/backfunction.js'; import { saveJson } from '@/libs/utils/backfunction.js';
const { exec, execSync } = require('child_process');
class IpcEvents { class IpcEvents {
create (appManager) { create (appManager) {
this.appManager = appManager this.appManager = appManager
this.windowManager = appManager.windowManager; this.windowManager = appManager.windowManager;
this.win = this.windowManager.mainWindow.win; this.win = this.windowManager.mainWindow.win;
this.store = this.windowManager.mainWindow.store;
/* 翻译器函数 /* 翻译器函数
Translator function */ Translator function */
...@@ -48,7 +50,18 @@ class IpcEvents { ...@@ -48,7 +50,18 @@ class IpcEvents {
ipcMain.on("setMainWindow0", (e, data) => { ipcMain.on("setMainWindow0", (e, data) => {
console.log('data',data) console.log('data',data)
this.windowManager.mainWindow.win.setPosition((data.width-600)/2,(data.height-80)) this.windowManager.mainWindow.win.setPosition((data.width-1000)/2,(data.height-40))
})
ipcMain.on("getApps", (e, data) => {
let apps = this.store.get("apps");
console.log(1)
console.log(apps)
this.windowManager.mainWindow.win.webContents.send("appsList", apps)
})
ipcMain.on("openApp", (e, data) => {
exec(data.execCommand);
}) })
} }
......
...@@ -3,7 +3,7 @@ import { createProtocol } from 'vue-cli-plugin-electron-builder/lib' ...@@ -3,7 +3,7 @@ import { createProtocol } from 'vue-cli-plugin-electron-builder/lib'
const fs = require('fs'); const fs = require('fs');
const path = require('path') const path = require('path')
const Store = require('electron-store'); const Store = require('electron-store');
const { exec } = require('child_process'); const { exec, execSync } = require('child_process');
const store = new Store({ const store = new Store({
defaults: { defaults: {
...@@ -16,6 +16,7 @@ class MainWindow { ...@@ -16,6 +16,7 @@ class MainWindow {
/* win代表electron窗口实例 /* win代表electron窗口实例
win is this electron window instance */ win is this electron window instance */
this.win = win this.win = win
this.store = store;
} }
initBrowserPage () { initBrowserPage () {
...@@ -43,12 +44,12 @@ class MainWindow { ...@@ -43,12 +44,12 @@ class MainWindow {
} }
const win = new BrowserWindow({ const win = new BrowserWindow({
width: 600, width: 1000,
height: 80, height: 40,
// fullscreen:true, //是否全屏显示 // fullscreen:true, //是否全屏显示
// fullscreenable:true, // fullscreenable:true,
maxWidth: 600, maxWidth: 1000,
maxHeight: 80, maxHeight: 40,
resizable: false, resizable: false,
x:400, x:400,
y:500, y:500,
...@@ -189,14 +190,13 @@ class MainWindow { ...@@ -189,14 +190,13 @@ class MainWindow {
// }; // };
// }); // });
} }
updateAppsList() { updateAppsList() {
console.log('linux')
exec('ls /usr/share/applications/*.desktop', (error, stdout, stderr) => { exec('ls /usr/share/applications/*.desktop', (error, stdout, stderr) => {
if (error) { if (error) {
console.error(`exec error: ${error}`); console.error(`exec error: ${error}`);
return; return;
} }
const apps = stdout.trim().split('\n').map(file => { const apps = stdout.trim().split('\n').map(file => {
const content = fs.readFileSync(file, 'utf8'); const content = fs.readFileSync(file, 'utf8');
const lines = content.trim().split('\n'); const lines = content.trim().split('\n');
...@@ -214,9 +214,49 @@ class MainWindow { ...@@ -214,9 +214,49 @@ class MainWindow {
}); });
store.set('apps', apps); store.set('apps', apps);
// console.log(apps)
this.win.webContents.send("appsList", newarr)
// updateContextMenu(); // updateContextMenu();
}); });
} }
updateAppsList_mac() {
// ls /usr/share/applications/*.desktop
exec('ls /System/Applications/*.app', (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
let temp = stdout.replace(/Contents/g, '');
temp=temp.replace(/[:]/g, '');
if(!temp || temp == undefined) return
const apps = temp.trim().split('\n').map((file,index) => {
if(!file || file.indexOf('.app') == -1 || typeof file != 'string') return {};
let fileArr = file.split('/');
let fileName = fileArr[fileArr.length-1];
let fileNameShort = fileName.split('.')[0];
let icon = '';
try {
var res = execSync(`ls /System/Applications/'${fileName}'/Contents/Resources/*.icns`
, { encoding: 'utf8' });
} catch (e) {
console.log("Errors:", e);
}
icon = res && res.trim().split('\n') || '';
icon = icon[icon.length-1];
let execCommand = `open '${file}'`
return {
name: fileNameShort,
icon,
execCommand,
};
});
let newarr = apps.filter(v => !!v.name)
store.set('apps', newarr);
// store.get('apps')
this.win.webContents.send("appsList", newarr)
});
}
} }
export default MainWindow export default MainWindow
<template> <template>
<div id="app" ref="appcontainer" class="container"> <div id="app" ref="appcontainer" class="container">
<img src="~@/assets/logo@3x.png" alt="" class="img1"> <div class="left_main">
<img src="~@/assets/word@2x.png" alt="" class="img"> <img src="~@/assets/WechatIMG17.jpeg" alt="" class="left_img">
<span class="left_name">许昌市第十六中学</span>
</div>
<div class="group1_wrap first">
<div v-for="(appItem, appIndex) in group1"
v-show="appIndex < 14"
class="app_item"
@click="tapApp(appItem)">
<img :src="appItem.icon" alt="" class="img">
<span class="app_name">{{ appItem.name }}</span>
</div>
</div>
<div class="group1_wrap">
<div v-for="(appItem, appIndex) in group2"
v-show="appIndex < 14"
class="app_item"
@click="tapApp(appItem)">
<img :src="appItem.icon" alt="" class="img">
<span class="app_name">{{ appItem.name }}</span>
</div>
</div>
<div class="group1_wrap">
<div v-for="(appItem, appIndex) in group3"
v-show="appIndex < 14"
class="app_item"
@click="tapApp(appItem)">
<img :src="appItem.icon" alt="" class="img">
<span class="app_name">{{ appItem.name }}</span>
</div>
</div>
<div class="group1_wrap">
<div v-for="(appItem, appIndex) in group4"
v-show="appIndex < 14"
class="app_item"
@click="tapApp(appItem)">
<img :src="appItem.icon" alt="" class="img">
<span class="app_name">{{ appItem.name }}</span>
</div>
</div>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
data() { data() {
return { return {
appList:[],
group1:[],
group2:[],
group3:[],
group4:[],
}; };
}, },
created() { created() {
...@@ -19,9 +61,24 @@ export default { ...@@ -19,9 +61,24 @@ export default {
console.log('宽高',width,height); console.log('宽高',width,height);
let ipcRenderer = this.$electron && this.$electron.ipcRenderer || {}; let ipcRenderer = this.$electron && this.$electron.ipcRenderer || {};
ipcRenderer.send("setMainWindow0",{width,height}); ipcRenderer.send("setMainWindow0",{width,height});
ipcRenderer.send("getApps")
ipcRenderer.on("appsList", (event, list) => {
console.log('获取到app列表', list)
this.appList = list;
if(list) {
if(list.length > 8) this.group1 = list.slice(0,9);
if(list.length > 10) this.group2 = list.slice(9,11);
if(list.length > 12) this.group3 = list.slice(11,13);
if(list.length > 14) this.group4 = list.slice(13,15);
}
});
}, },
methods: { methods: {
tapApp(item) {
console.log(item)
let ipcRenderer = this.$electron && this.$electron.ipcRenderer || {};
ipcRenderer.send("openApp",item);
}
}, },
} }
</script> </script>
...@@ -37,16 +94,80 @@ body { ...@@ -37,16 +94,80 @@ body {
display: flex; display: flex;
justify-content: space-evenly; justify-content: space-evenly;
align-items: center; align-items: center;
flex-wrap: wrap;
height: 100%; height: 100%;
border-radius: 20px; border-radius: 20px;
overflow: hidden; overflow: hidden;
// background-color: hsl(0, 0%, 25%);
background-color: #fff;
.group1_wrap {
border-radius: 6px;
margin-left: 4px;
background-color: hsl(0, 0%, 25%); background-color: hsl(0, 0%, 25%);
.img1 { display: flex;
height: 80px; align-items: center;
justify-content: center;
flex: 1;
height: 40px;
&.first {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
margin-left: 0;
}
}
.app_item {
margin: 0 4px;
flex-shrink: 0;
width: 36px;
height: 36px;
border-radius: 10px;
border: 1px solid rgba(255, 255, 255, .1);
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
overflow: hidden;
text-align: left;
cursor: pointer;
flex-wrap: wrap;
} }
.img { .img {
height: 60px; flex-shrink: 0;
height: 36px;
// width: 36px;
}
.app_name {
font-size: 14px;
color: #fff;
}
}
.left_main {
position: relative;
display: flex;
align-items: center;
height: 40px;
flex-shrink: 0;
padding: 0 20px;
background-color: hsl(0, 0%, 25%);
&::after {
position: absolute;
content: "";
right: 10px;
border-right: 1px solid #e4e4e4;
width: 1px;
height: 100%;
} }
} }
.left_img {
width: 35px;
height: 35px;
}
.left_name {
padding-left: 4px;
font-size: 20px;
font-weight: 500;
color: #fff;
}
</style> </style>
...@@ -2312,6 +2312,13 @@ ajv-errors@^1.0.0: ...@@ -2312,6 +2312,13 @@ ajv-errors@^1.0.0:
resolved "https://registry.npmmirror.com/ajv-errors/download/ajv-errors-1.0.1.tgz" resolved "https://registry.npmmirror.com/ajv-errors/download/ajv-errors-1.0.1.tgz"
integrity sha1-81mGrOuRr63sQQL72FAUlQzvpk0= integrity sha1-81mGrOuRr63sQQL72FAUlQzvpk0=
ajv-formats@^2.1.1:
version "2.1.1"
resolved "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520"
integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==
dependencies:
ajv "^8.0.0"
ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2:
version "3.5.2" version "3.5.2"
resolved "https://registry.npmmirror.com/ajv-keywords/download/ajv-keywords-3.5.2.tgz" resolved "https://registry.npmmirror.com/ajv-keywords/download/ajv-keywords-3.5.2.tgz"
...@@ -2327,6 +2334,16 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.12.3, ajv@^6.12.4, ajv ...@@ -2327,6 +2334,16 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.12.3, ajv@^6.12.4, ajv
json-schema-traverse "^0.4.1" json-schema-traverse "^0.4.1"
uri-js "^4.2.2" uri-js "^4.2.2"
ajv@^8.0.0, ajv@^8.6.3:
version "8.12.0"
resolved "https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1"
integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==
dependencies:
fast-deep-equal "^3.1.1"
json-schema-traverse "^1.0.0"
require-from-string "^2.0.2"
uri-js "^4.2.2"
alphanum-sort@^1.0.0: alphanum-sort@^1.0.0:
version "1.0.2" version "1.0.2"
resolved "https://registry.npmmirror.com/alphanum-sort/download/alphanum-sort-1.0.2.tgz" resolved "https://registry.npmmirror.com/alphanum-sort/download/alphanum-sort-1.0.2.tgz"
...@@ -2692,6 +2709,11 @@ atob@^2.1.2: ...@@ -2692,6 +2709,11 @@ atob@^2.1.2:
resolved "https://registry.npmmirror.com/atob/download/atob-2.1.2.tgz" resolved "https://registry.npmmirror.com/atob/download/atob-2.1.2.tgz"
integrity sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k= integrity sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=
atomically@^1.7.0:
version "1.7.0"
resolved "https://registry.npmmirror.com/atomically/-/atomically-1.7.0.tgz#c07a0458432ea6dbc9a3506fffa424b48bccaafe"
integrity sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==
autoprefixer@^9.8.6: autoprefixer@^9.8.6:
version "9.8.8" version "9.8.8"
resolved "https://registry.npmmirror.com/autoprefixer/download/autoprefixer-9.8.8.tgz?cache=0&sync_timestamp=1635421704162&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.8.tgz" resolved "https://registry.npmmirror.com/autoprefixer/download/autoprefixer-9.8.8.tgz?cache=0&sync_timestamp=1635421704162&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.8.tgz"
...@@ -3913,6 +3935,22 @@ condense-newlines@^0.2.1: ...@@ -3913,6 +3935,22 @@ condense-newlines@^0.2.1:
is-whitespace "^0.3.0" is-whitespace "^0.3.0"
kind-of "^3.0.2" kind-of "^3.0.2"
conf@^10.2.0:
version "10.2.0"
resolved "https://registry.npmmirror.com/conf/-/conf-10.2.0.tgz#838e757be963f1a2386dfe048a98f8f69f7b55d6"
integrity sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==
dependencies:
ajv "^8.6.3"
ajv-formats "^2.1.1"
atomically "^1.7.0"
debounce-fn "^4.0.0"
dot-prop "^6.0.1"
env-paths "^2.2.1"
json-schema-typed "^7.0.3"
onetime "^5.1.2"
pkg-up "^3.1.0"
semver "^7.3.5"
config-chain@^1.1.11, config-chain@^1.1.12: config-chain@^1.1.11, config-chain@^1.1.12:
version "1.1.13" version "1.1.13"
resolved "https://registry.npmmirror.com/config-chain/download/config-chain-1.1.13.tgz" resolved "https://registry.npmmirror.com/config-chain/download/config-chain-1.1.13.tgz"
...@@ -4413,6 +4451,13 @@ de-indent@^1.0.2: ...@@ -4413,6 +4451,13 @@ de-indent@^1.0.2:
resolved "https://registry.npmmirror.com/de-indent/download/de-indent-1.0.2.tgz" resolved "https://registry.npmmirror.com/de-indent/download/de-indent-1.0.2.tgz"
integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=
debounce-fn@^4.0.0:
version "4.0.0"
resolved "https://registry.npmmirror.com/debounce-fn/-/debounce-fn-4.0.0.tgz#ed76d206d8a50e60de0dd66d494d82835ffe61c7"
integrity sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==
dependencies:
mimic-fn "^3.0.0"
debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9:
version "2.6.9" version "2.6.9"
resolved "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz" resolved "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz"
...@@ -4842,6 +4887,13 @@ dot-prop@^5.2.0: ...@@ -4842,6 +4887,13 @@ dot-prop@^5.2.0:
dependencies: dependencies:
is-obj "^2.0.0" is-obj "^2.0.0"
dot-prop@^6.0.1:
version "6.0.1"
resolved "https://registry.npmmirror.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083"
integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==
dependencies:
is-obj "^2.0.0"
dotenv-expand@^5.1.0: dotenv-expand@^5.1.0:
version "5.1.0" version "5.1.0"
resolved "https://registry.npmmirror.com/dotenv-expand/download/dotenv-expand-5.1.0.tgz" resolved "https://registry.npmmirror.com/dotenv-expand/download/dotenv-expand-5.1.0.tgz"
...@@ -5013,6 +5065,14 @@ electron-publish@23.6.0: ...@@ -5013,6 +5065,14 @@ electron-publish@23.6.0:
lazy-val "^1.0.5" lazy-val "^1.0.5"
mime "^2.5.2" mime "^2.5.2"
electron-store@^8.1.0:
version "8.1.0"
resolved "https://registry.npmmirror.com/electron-store/-/electron-store-8.1.0.tgz#46a398f2bd9aa83c4a9daaae28380e2b3b9c7597"
integrity sha512-2clHg/juMjOH0GT9cQ6qtmIvK183B39ZXR0bUoPwKwYHJsEF3quqyDzMFUAu+0OP8ijmN2CbPRAelhNbWUbzwA==
dependencies:
conf "^10.2.0"
type-fest "^2.17.0"
electron-to-chromium@^1.3.896: electron-to-chromium@^1.3.896:
version "1.3.901" version "1.3.901"
resolved "https://registry.npmmirror.com/electron-to-chromium/download/electron-to-chromium-1.3.901.tgz?cache=0&sync_timestamp=1637175454711&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.901.tgz" resolved "https://registry.npmmirror.com/electron-to-chromium/download/electron-to-chromium-1.3.901.tgz?cache=0&sync_timestamp=1637175454711&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.901.tgz"
...@@ -5103,7 +5163,7 @@ entities@^2.0.0: ...@@ -5103,7 +5163,7 @@ entities@^2.0.0:
resolved "https://registry.npmmirror.com/entities/download/entities-2.2.0.tgz" resolved "https://registry.npmmirror.com/entities/download/entities-2.2.0.tgz"
integrity sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU= integrity sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=
env-paths@^2.2.0: env-paths@^2.2.0, env-paths@^2.2.1:
version "2.2.1" version "2.2.1"
resolved "https://registry.npmmirror.com/env-paths/download/env-paths-2.2.1.tgz" resolved "https://registry.npmmirror.com/env-paths/download/env-paths-2.2.1.tgz"
integrity sha1-QgOZ1BbOH76bwKB8Yvpo1n/Q+PI= integrity sha1-QgOZ1BbOH76bwKB8Yvpo1n/Q+PI=
...@@ -7633,6 +7693,16 @@ json-schema-traverse@^0.4.1: ...@@ -7633,6 +7693,16 @@ json-schema-traverse@^0.4.1:
resolved "https://registry.npmmirror.com/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz" resolved "https://registry.npmmirror.com/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz"
integrity sha1-afaofZUTq4u4/mO9sJecRI5oRmA= integrity sha1-afaofZUTq4u4/mO9sJecRI5oRmA=
json-schema-traverse@^1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
json-schema-typed@^7.0.3:
version "7.0.3"
resolved "https://registry.npmmirror.com/json-schema-typed/-/json-schema-typed-7.0.3.tgz#23ff481b8b4eebcd2ca123b4fa0409e66469a2d9"
integrity sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==
json-schema@0.2.3: json-schema@0.2.3:
version "0.2.3" version "0.2.3"
resolved "https://registry.npmmirror.com/json-schema/download/json-schema-0.2.3.tgz?cache=0&sync_timestamp=1636423462103&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz" resolved "https://registry.npmmirror.com/json-schema/download/json-schema-0.2.3.tgz?cache=0&sync_timestamp=1636423462103&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz"
...@@ -8346,6 +8416,11 @@ mimic-fn@^2.1.0: ...@@ -8346,6 +8416,11 @@ mimic-fn@^2.1.0:
resolved "https://registry.npmmirror.com/mimic-fn/download/mimic-fn-2.1.0.tgz" resolved "https://registry.npmmirror.com/mimic-fn/download/mimic-fn-2.1.0.tgz"
integrity sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs= integrity sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=
mimic-fn@^3.0.0:
version "3.1.0"
resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74"
integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==
mimic-response@^1.0.0, mimic-response@^1.0.1: mimic-response@^1.0.0, mimic-response@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.npmmirror.com/mimic-response/download/mimic-response-1.0.1.tgz" resolved "https://registry.npmmirror.com/mimic-response/download/mimic-response-1.0.1.tgz"
...@@ -9508,6 +9583,13 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0: ...@@ -9508,6 +9583,13 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0:
dependencies: dependencies:
find-up "^4.0.0" find-up "^4.0.0"
pkg-up@^3.1.0:
version "3.1.0"
resolved "https://registry.npmmirror.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5"
integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==
dependencies:
find-up "^3.0.0"
plist@^3.0.1: plist@^3.0.1:
version "3.0.4" version "3.0.4"
resolved "https://registry.npmmirror.com/plist/download/plist-3.0.4.tgz" resolved "https://registry.npmmirror.com/plist/download/plist-3.0.4.tgz"
...@@ -10460,6 +10542,11 @@ require-directory@^2.1.1: ...@@ -10460,6 +10542,11 @@ require-directory@^2.1.1:
resolved "https://registry.npmmirror.com/require-directory/download/require-directory-2.1.1.tgz" resolved "https://registry.npmmirror.com/require-directory/download/require-directory-2.1.1.tgz"
integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
require-from-string@^2.0.2:
version "2.0.2"
resolved "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
require-main-filename@^1.0.1: require-main-filename@^1.0.1:
version "1.0.1" version "1.0.1"
resolved "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-1.0.1.tgz" resolved "https://registry.npmmirror.com/require-main-filename/-/require-main-filename-1.0.1.tgz"
...@@ -11979,6 +12066,11 @@ type-fest@^0.8.1: ...@@ -11979,6 +12066,11 @@ type-fest@^0.8.1:
resolved "https://registry.npmmirror.com/type-fest/download/type-fest-0.8.1.tgz?cache=0&sync_timestamp=1637150020795&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz" resolved "https://registry.npmmirror.com/type-fest/download/type-fest-0.8.1.tgz?cache=0&sync_timestamp=1637150020795&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftype-fest%2Fdownload%2Ftype-fest-0.8.1.tgz"
integrity sha1-CeJJ696FHTseSNJ8EFREZn8XuD0= integrity sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=
type-fest@^2.17.0:
version "2.19.0"
resolved "https://registry.npmmirror.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b"
integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==
type-is@~1.6.17, type-is@~1.6.18: type-is@~1.6.17, type-is@~1.6.18:
version "1.6.18" version "1.6.18"
resolved "https://registry.npmmirror.com/type-is/download/type-is-1.6.18.tgz" resolved "https://registry.npmmirror.com/type-is/download/type-is-1.6.18.tgz"
......
Markdown 格式
0% 或
您添加了 0 人 到此讨论。请谨慎行事。
请先完成此评论的编辑!
请 注册 或者 后发表评论