目录结构调整

This commit is contained in:
fofolee
2024-12-20 13:42:54 +08:00
parent b191cca77e
commit 129375ff20
13 changed files with 228 additions and 255 deletions

View File

@@ -8,16 +8,14 @@
// Configuration for your app // Configuration for your app
// https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js // https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js
const ESLintPlugin = require("eslint-webpack-plugin");
const ESLintPlugin = require('eslint-webpack-plugin')
const MonacoEditorPlugin = require("monaco-editor-webpack-plugin"); const MonacoEditorPlugin = require("monaco-editor-webpack-plugin");
const CopyPlugin = require("copy-webpack-plugin"); const CopyPlugin = require("copy-webpack-plugin");
const path = require("path");
const { const { configure } = require("quasar/wrappers");
configure
} = require('quasar/wrappers');
module.exports = configure(function(ctx) { module.exports = configure(function (ctx) {
return { return {
// https://v2.quasar.dev/quasar-cli-webpack/supporting-ts // https://v2.quasar.dev/quasar-cli-webpack/supporting-ts
supportTS: false, supportTS: false,
@@ -31,9 +29,7 @@ module.exports = configure(function(ctx) {
boot: [], boot: [],
// https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-css // https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-css
css: [ css: ["app.css"],
'app.css'
],
// https://github.com/quasarframework/quasar/tree/dev/extras // https://github.com/quasarframework/quasar/tree/dev/extras
extras: [ extras: [
@@ -45,13 +41,13 @@ module.exports = configure(function(ctx) {
// 'line-awesome', // 'line-awesome',
// 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both! // 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both!
'roboto-font', // optional, you are not bound to it "roboto-font", // optional, you are not bound to it
'material-icons', // optional, you are not bound to it "material-icons", // optional, you are not bound to it
], ],
// Full list of options: https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-build // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-build
build: { build: {
vueRouterMode: 'hash', // available values: 'hash', 'history' vueRouterMode: "hash", // available values: 'hash', 'history'
// transpile: false, // transpile: false,
// publicPath: '/', // publicPath: '/',
@@ -74,48 +70,55 @@ module.exports = configure(function(ctx) {
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
chainWebpack(chain) { chainWebpack(chain) {
chain.plugin('eslint-webpack-plugin') chain.plugin("eslint-webpack-plugin").use(ESLintPlugin, [
.use(ESLintPlugin, [{ {
extensions: ['js', 'vue'] extensions: ["js", "vue"],
}]) },
chain.plugin("monaco-editor-webpack-plugin") ]);
.use(MonacoEditorPlugin, [{ chain.plugin("monaco-editor-webpack-plugin").use(MonacoEditorPlugin, [
languages: ['typescript', 'html'] // 只导入js和html {
}]); languages: ["typescript", "html"], // 只导入js和html
chain.plugin("copy-webpack-plugin") },
.use(CopyPlugin, [{ ]);
patterns: [{ chain.plugin("copy-webpack-plugin").use(CopyPlugin, [
from: './plugin/', {
patterns: [
{
from: "./plugin/",
to: ".", to: ".",
info: { info: {
minimized: true minimized: true,
}, },
}], },
}]); ],
},
]);
chain.resolve.alias.set("plugins", path.join(__dirname, "./src/plugins"));
chain.resolve.alias.set("js", path.join(__dirname, "./src/js"));
}, },
extendWebpack(cfg) { extendWebpack(cfg) {
cfg.optimization.splitChunks = { cfg.optimization.splitChunks = {
chunks: 'all', chunks: "all",
maxSize: 1 * 1000 * 1000, maxSize: 1 * 1000 * 1000,
minSize: 200 * 1000, minSize: 200 * 1000,
cacheGroups: { cacheGroups: {
vendors: { vendors: {
test: /[\\/]node_modules[\\/]/, test: /[\\/]node_modules[\\/]/,
name: 'vendors', name: "vendors",
chunks: 'all', chunks: "all",
}, },
}, },
} };
} },
}, },
// Full list of options: https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-devServer // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-devServer
devServer: { devServer: {
server: { server: {
type: 'http' type: "http",
}, },
port: 8080, port: 8080,
open: false // opens browser window automatically open: false, // opens browser window automatically
}, },
// https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-framework // https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-framework
@@ -133,7 +136,7 @@ module.exports = configure(function(ctx) {
// directives: [], // directives: [],
// Quasar plugins // Quasar plugins
plugins: ['Notify'] plugins: ["Notify"],
}, },
// animations: 'all', // --- includes all animations // animations: 'all', // --- includes all animations
@@ -153,72 +156,46 @@ module.exports = configure(function(ctx) {
maxAge: 1000 * 60 * 60 * 24 * 30, maxAge: 1000 * 60 * 60 * 24 * 30,
// Tell browser when a file from the server should expire from cache (in ms) // Tell browser when a file from the server should expire from cache (in ms)
chainWebpackWebserver(chain) { chainWebpackWebserver(chain) {
chain.plugin('eslint-webpack-plugin') chain.plugin("eslint-webpack-plugin").use(ESLintPlugin, [
.use(ESLintPlugin, [{ {
extensions: ['js'] extensions: ["js"],
}]) },
]);
}, },
middlewares: [ middlewares: [
ctx.prod ? 'compression' : '', ctx.prod ? "compression" : "",
'render' // keep this as last one "render", // keep this as last one
] ],
}, },
// https://v2.quasar.dev/quasar-cli-webpack/developing-pwa/configuring-pwa // https://v2.quasar.dev/quasar-cli-webpack/developing-pwa/configuring-pwa
pwa: { pwa: {
workboxPluginMode: 'GenerateSW', // 'GenerateSW' or 'InjectManifest' workboxPluginMode: "GenerateSW", // 'GenerateSW' or 'InjectManifest'
workboxOptions: {}, // only for GenerateSW workboxOptions: {}, // only for GenerateSW
// for the custom service worker ONLY (/src-pwa/custom-service-worker.[js|ts]) // for the custom service worker ONLY (/src-pwa/custom-service-worker.[js|ts])
// if using workbox in InjectManifest mode // if using workbox in InjectManifest mode
chainWebpackCustomSW(chain) { chainWebpackCustomSW(chain) {
chain.plugin('eslint-webpack-plugin') chain.plugin("eslint-webpack-plugin").use(ESLintPlugin, [
.use(ESLintPlugin, [{ {
extensions: ['js'] extensions: ["js"],
}]) },
]);
}, },
manifest: { manifest: {
name: `quickcommand`, name: `quickcommand`,
short_name: `quickcommand`, short_name: `quickcommand`,
description: `plugin for uTools`, description: `plugin for uTools`,
display: 'standalone', display: "standalone",
orientation: 'portrait', orientation: "portrait",
background_color: '#ffffff', background_color: "#ffffff",
theme_color: '#027be3', theme_color: "#027be3",
icons: [{
src: 'icons/icon-128x128.png',
sizes: '128x128',
type: 'image/png'
}, },
{
src: 'icons/icon-192x192.png',
sizes: '192x192',
type: 'image/png'
},
{
src: 'icons/icon-256x256.png',
sizes: '256x256',
type: 'image/png'
},
{
src: 'icons/icon-384x384.png',
sizes: '384x384',
type: 'image/png'
},
{
src: 'icons/icon-512x512.png',
sizes: '512x512',
type: 'image/png'
}
]
}
}, },
// Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-cordova-apps/configuring-cordova // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-cordova-apps/configuring-cordova
@@ -228,22 +205,20 @@ module.exports = configure(function(ctx) {
// Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-capacitor-apps/configuring-capacitor // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-capacitor-apps/configuring-capacitor
capacitor: { capacitor: {
hideSplashscreen: true hideSplashscreen: true,
}, },
// Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-electron-apps/configuring-electron // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-electron-apps/configuring-electron
electron: { electron: {
bundler: 'packager', // 'packager' or 'builder' bundler: "packager", // 'packager' or 'builder'
packager: { packager: {
// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options // https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
// OS X / Mac App Store // OS X / Mac App Store
// appBundleId: '', // appBundleId: '',
// appCategoryType: '', // appCategoryType: '',
// osxSign: '', // osxSign: '',
// protocol: 'myapp://path', // protocol: 'myapp://path',
// Windows only // Windows only
// win32metadata: { ... } // win32metadata: { ... }
}, },
@@ -251,27 +226,26 @@ module.exports = configure(function(ctx) {
builder: { builder: {
// https://www.electron.build/configuration/configuration // https://www.electron.build/configuration/configuration
appId: 'quickcommand' appId: "quickcommand",
}, },
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
chainWebpackMain(chain) { chainWebpackMain(chain) {
chain.plugin('eslint-webpack-plugin') chain.plugin("eslint-webpack-plugin").use(ESLintPlugin, [
.use(ESLintPlugin, [{ {
extensions: ['js'] extensions: ["js"],
}]) },
]);
}, },
chainWebpackPreload(chain) { chainWebpackPreload(chain) {
chain.plugin('eslint-webpack-plugin') chain.plugin("eslint-webpack-plugin").use(ESLintPlugin, [
.use(ESLintPlugin, [{ {
extensions: ['js'] extensions: ["js"],
}])
}, },
]);
} },
} },
};
}); });

View File

@@ -275,8 +275,8 @@
</template> </template>
<script> <script>
import commandTypes from "../js/options/commandTypes.js"; import commandTypes from "js/options/commandTypes.js";
import platformTypes from "../js/options/platformTypes.js"; import platformTypes from "js/options/platformTypes.js";
import CrontabSetting from "components/popup/CrontabSetting"; import CrontabSetting from "components/popup/CrontabSetting";
// import ShareDialog from "components/popup/ShareDialog"; // import ShareDialog from "components/popup/ShareDialog";

View File

@@ -73,13 +73,13 @@
<script> <script>
import { defineAsyncComponent } from "vue"; import { defineAsyncComponent } from "vue";
import CommandSideBar from "components/CommandSideBar"; import CommandSideBar from "components/editor/CommandSideBar";
import CommandLanguageBar from "components/editor/CommandLanguageBar";
import EditorTools from "components/editor/EditorTools";
import CommandRunResult from "components/CommandRunResult"; import CommandRunResult from "components/CommandRunResult";
import CommandLanguageBar from "components/CommandLanguageBar";
import EditorTools from "components/EditorTools";
// Performance Scripting > 500ms // Performance Scripting > 500ms
const MonacoEditor = defineAsyncComponent(() => const MonacoEditor = defineAsyncComponent(() =>
import("components/MonacoEditor") import("components/editor/MonacoEditor")
); );
export default { export default {

View File

@@ -38,9 +38,9 @@
<script> <script>
import outputTypes from "../js/options/outputTypes.js"; import outputTypes from "js/options/outputTypes.js";
import specialVars from "../js/options/specialVars.js"; import specialVars from "js/options/specialVars.js";
import commandTypes from "../js/options/commandTypes.js"; import commandTypes from "js/options/commandTypes.js";
import ResultArea from "components/ResultArea.vue"; import ResultArea from "components/ResultArea.vue";
import ResultMenu from "components/popup/ResultMenu.vue"; import ResultMenu from "components/popup/ResultMenu.vue";

View File

@@ -523,11 +523,10 @@
<script> <script>
import { setCssVar } from "quasar"; import { setCssVar } from "quasar";
import { ref } from "vue";
import AboutThis from "components/popup/AboutThis"; import AboutThis from "components/popup/AboutThis";
import PanelSetting from "components/popup/PanelSetting"; import PanelSetting from "components/popup/PanelSetting";
import UserInfo from "components/popup/UserInfo"; import UserInfo from "components/popup/UserInfo";
import features from "../js/options/quickFeatures.js"; import features from "js/options/quickFeatures.js";
import UserData from "components/popup/UserData"; import UserData from "components/popup/UserData";
export default { export default {

View File

@@ -334,10 +334,10 @@
</template> </template>
<script> <script>
import commandTypes from "../js/options/commandTypes.js"; import commandTypes from "js/options/commandTypes.js";
import outputTypes from "../js/options/outputTypes.js"; import outputTypes from "js/options/outputTypes.js";
import specialVars from "../js/options/specialVars.js"; import specialVars from "js/options/specialVars.js";
import platformTypes from "../js/options/platformTypes.js"; import platformTypes from "js/options/platformTypes.js";
import iconPicker from "components/popup/IconPicker.vue"; import iconPicker from "components/popup/IconPicker.vue";
import UserData from "components/popup/UserData.vue"; import UserData from "components/popup/UserData.vue";

View File

@@ -27,30 +27,30 @@
import EditorHistory from "components/popup/EditorHistory.vue"; import EditorHistory from "components/popup/EditorHistory.vue";
export default { export default {
name: 'EditorTools', name: "EditorTools",
components: { components: {
EditorHistory EditorHistory,
}, },
props: { props: {
commandCode: { commandCode: {
type: String, type: String,
default: 'temp' default: "temp",
}, },
isFullscreen: { isFullscreen: {
type: Boolean, type: Boolean,
default: false default: false,
}
}, },
emits: ['restore', 'toggle-fullscreen'], },
emits: ["restore", "toggle-fullscreen"],
methods: { methods: {
showHistory() { showHistory() {
this.$refs.history.open(); this.$refs.history.open();
}, },
tryToSave(content, program) { tryToSave(content, program) {
this.$refs.history.tryToSave(content, program); this.$refs.history.tryToSave(content, program);
} },
} },
} };
</script> </script>
<style scoped> <style scoped>

View File

@@ -16,16 +16,16 @@
<script> <script>
import * as monaco from "monaco-editor"; import * as monaco from "monaco-editor";
import { toRaw } from "vue"; import { toRaw } from "vue";
import importAll from "../js/common/importAll.js"; import importAll from "js/common/importAll.js";
// //
let apis = importAll( let apis = importAll(
require.context("!raw-loader!../plugins/monaco/types/", false, /\.ts$/) require.context("!raw-loader!plugins/monaco/types/", false, /\.ts$/)
); );
// //
let languageCompletions = importAll( let languageCompletions = importAll(
require.context("../plugins/monaco/completions/", false, /\.js$/) require.context("plugins/monaco/completions/", false, /\.js$/)
); );
let monacoCompletionProviders = {}; let monacoCompletionProviders = {};

View File

@@ -129,7 +129,7 @@
</template> </template>
<script> <script>
import levelDetail from "../../js/options/levelDetail.js"; import levelDetail from "js/options/levelDetail.js";
export default { export default {
data() { data() {

View File

@@ -238,9 +238,9 @@
<script> <script>
import { defineAsyncComponent } from "vue"; import { defineAsyncComponent } from "vue";
import quickcommandParser from "../js/common/quickcommandParser.js"; import quickcommandParser from "js/common/quickcommandParser.js";
import importAll from "../js/common/importAll.js"; import importAll from "js/common/importAll.js";
import changeLog from "../js/options/changeLog.js"; import changeLog from "js/options/changeLog.js";
import pinyinMatch from "pinyin-match"; import pinyinMatch from "pinyin-match";
import CommandCard from "components/CommandCard"; import CommandCard from "components/CommandCard";
import CommandEditor from "components/CommandEditor"; import CommandEditor from "components/CommandEditor";

View File

@@ -80,7 +80,7 @@
</template> </template>
<script> <script>
import MonacoEditor from "components/MonacoEditor"; import MonacoEditor from "components/editor/MonacoEditor";
export default { export default {
components: { MonacoEditor }, components: { MonacoEditor },

View File

@@ -125,7 +125,7 @@
</template> </template>
<script> <script>
import commandTypes from "../js/options/commandTypes.js"; import commandTypes from "js/options/commandTypes.js";
export default { export default {
data() { data() {