目录结构调整

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,270 +8,244 @@
// Configuration for your app
// 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 CopyPlugin = require("copy-webpack-plugin");
const path = require("path");
const {
configure
} = require('quasar/wrappers');
const { configure } = require("quasar/wrappers");
module.exports = configure(function(ctx) {
return {
// https://v2.quasar.dev/quasar-cli-webpack/supporting-ts
supportTS: false,
module.exports = configure(function (ctx) {
return {
// https://v2.quasar.dev/quasar-cli-webpack/supporting-ts
supportTS: false,
// https://v2.quasar.dev/quasar-cli-webpack/prefetch-feature
// preFetch: true,
// https://v2.quasar.dev/quasar-cli-webpack/prefetch-feature
// preFetch: true,
// app boot file (/src/boot)
// --> boot files are part of "main.js"
// https://v2.quasar.dev/quasar-cli-webpack/boot-files
boot: [],
// app boot file (/src/boot)
// --> boot files are part of "main.js"
// https://v2.quasar.dev/quasar-cli-webpack/boot-files
boot: [],
// https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-css
css: [
'app.css'
],
// https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-css
css: ["app.css"],
// https://github.com/quasarframework/quasar/tree/dev/extras
extras: [
// 'ionicons-v4',
// 'mdi-v5',
// 'fontawesome-v6',
// 'eva-icons',
// 'themify',
// 'line-awesome',
// 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both!
// https://github.com/quasarframework/quasar/tree/dev/extras
extras: [
// 'ionicons-v4',
// 'mdi-v5',
// 'fontawesome-v6',
// 'eva-icons',
// 'themify',
// 'line-awesome',
// 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both!
'roboto-font', // optional, you are not bound to it
'material-icons', // 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
],
// Full list of options: https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-build
build: {
vueRouterMode: 'hash', // available values: 'hash', 'history'
// Full list of options: https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-build
build: {
vueRouterMode: "hash", // available values: 'hash', 'history'
// transpile: false,
// publicPath: '/',
// transpile: false,
// publicPath: '/',
// Add dependencies for transpiling with Babel (Array of string/regex)
// (from node_modules, which are by default not transpiled).
// Applies only if "transpile" is set to true.
// transpileDependencies: [],
// Add dependencies for transpiling with Babel (Array of string/regex)
// (from node_modules, which are by default not transpiled).
// Applies only if "transpile" is set to true.
// transpileDependencies: [],
// rtl: true, // https://quasar.dev/options/rtl-support
// preloadChunks: true,
// showProgress: false,
// gzip: true,
// analyze: true,
// rtl: true, // https://quasar.dev/options/rtl-support
// preloadChunks: true,
// showProgress: false,
// gzip: true,
// analyze: true,
// Options below are automatically set depending on the env, set them if you want to override
// extractCSS: false,
// Options below are automatically set depending on the env, set them if you want to override
// extractCSS: false,
// https://v2.quasar.dev/quasar-cli-webpack/handling-webpack
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
// https://v2.quasar.dev/quasar-cli-webpack/handling-webpack
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
chainWebpack(chain) {
chain.plugin('eslint-webpack-plugin')
.use(ESLintPlugin, [{
extensions: ['js', 'vue']
}])
chain.plugin("monaco-editor-webpack-plugin")
.use(MonacoEditorPlugin, [{
languages: ['typescript', 'html'] // 只导入js和html
}]);
chain.plugin("copy-webpack-plugin")
.use(CopyPlugin, [{
patterns: [{
from: './plugin/',
to: ".",
info: {
minimized: true
},
}],
}]);
},
extendWebpack(cfg) {
cfg.optimization.splitChunks = {
chunks: 'all',
maxSize: 1 * 1000 * 1000,
minSize: 200 * 1000,
cacheGroups: {
vendors: {
test: /[\\/]node_modules[\\/]/,
name: 'vendors',
chunks: 'all',
},
chainWebpack(chain) {
chain.plugin("eslint-webpack-plugin").use(ESLintPlugin, [
{
extensions: ["js", "vue"],
},
]);
chain.plugin("monaco-editor-webpack-plugin").use(MonacoEditorPlugin, [
{
languages: ["typescript", "html"], // 只导入js和html
},
]);
chain.plugin("copy-webpack-plugin").use(CopyPlugin, [
{
patterns: [
{
from: "./plugin/",
to: ".",
info: {
minimized: true,
},
}
}
},
// Full list of options: https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-devServer
devServer: {
server: {
type: 'http'
},
],
},
]);
chain.resolve.alias.set("plugins", path.join(__dirname, "./src/plugins"));
chain.resolve.alias.set("js", path.join(__dirname, "./src/js"));
},
extendWebpack(cfg) {
cfg.optimization.splitChunks = {
chunks: "all",
maxSize: 1 * 1000 * 1000,
minSize: 200 * 1000,
cacheGroups: {
vendors: {
test: /[\\/]node_modules[\\/]/,
name: "vendors",
chunks: "all",
},
port: 8080,
open: false // opens browser window automatically
},
},
};
},
},
// https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-framework
framework: {
config: {},
// Full list of options: https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-devServer
devServer: {
server: {
type: "http",
},
port: 8080,
open: false, // opens browser window automatically
},
// iconSet: 'material-icons', // Quasar icon set
// lang: 'en-US', // Quasar language pack
// https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-framework
framework: {
config: {},
// For special cases outside of where the auto-import strategy can have an impact
// (like functional components as one of the examples),
// you can manually specify Quasar components/directives to be available everywhere:
//
// components: [],
// directives: [],
// iconSet: 'material-icons', // Quasar icon set
// lang: 'en-US', // Quasar language pack
// Quasar plugins
plugins: ['Notify']
},
// For special cases outside of where the auto-import strategy can have an impact
// (like functional components as one of the examples),
// you can manually specify Quasar components/directives to be available everywhere:
//
// components: [],
// directives: [],
// animations: 'all', // --- includes all animations
// https://quasar.dev/options/animations
animations: [],
// Quasar plugins
plugins: ["Notify"],
},
// https://v2.quasar.dev/quasar-cli-webpack/developing-ssr/configuring-ssr
ssr: {
pwa: false,
// animations: 'all', // --- includes all animations
// https://quasar.dev/options/animations
animations: [],
// manualStoreHydration: true,
// manualPostHydrationTrigger: true,
// https://v2.quasar.dev/quasar-cli-webpack/developing-ssr/configuring-ssr
ssr: {
pwa: false,
prodPort: 3000, // The default port that the production server should use
// (gets superseded if process.env.PORT is specified at runtime)
// manualStoreHydration: true,
// manualPostHydrationTrigger: true,
maxAge: 1000 * 60 * 60 * 24 * 30,
// Tell browser when a file from the server should expire from cache (in ms)
prodPort: 3000, // The default port that the production server should use
// (gets superseded if process.env.PORT is specified at runtime)
maxAge: 1000 * 60 * 60 * 24 * 30,
// Tell browser when a file from the server should expire from cache (in ms)
chainWebpackWebserver(chain) {
chain.plugin('eslint-webpack-plugin')
.use(ESLintPlugin, [{
extensions: ['js']
}])
},
chainWebpackWebserver(chain) {
chain.plugin("eslint-webpack-plugin").use(ESLintPlugin, [
{
extensions: ["js"],
},
]);
},
middlewares: [
ctx.prod ? "compression" : "",
"render", // keep this as last one
],
},
middlewares: [
ctx.prod ? 'compression' : '',
'render' // keep this as last one
]
},
// https://v2.quasar.dev/quasar-cli-webpack/developing-pwa/configuring-pwa
pwa: {
workboxPluginMode: "GenerateSW", // 'GenerateSW' or 'InjectManifest'
workboxOptions: {}, // only for GenerateSW
// https://v2.quasar.dev/quasar-cli-webpack/developing-pwa/configuring-pwa
pwa: {
workboxPluginMode: 'GenerateSW', // 'GenerateSW' or 'InjectManifest'
workboxOptions: {}, // only for GenerateSW
// for the custom service worker ONLY (/src-pwa/custom-service-worker.[js|ts])
// if using workbox in InjectManifest mode
// for the custom service worker ONLY (/src-pwa/custom-service-worker.[js|ts])
// if using workbox in InjectManifest mode
chainWebpackCustomSW(chain) {
chain.plugin("eslint-webpack-plugin").use(ESLintPlugin, [
{
extensions: ["js"],
},
]);
},
chainWebpackCustomSW(chain) {
chain.plugin('eslint-webpack-plugin')
.use(ESLintPlugin, [{
extensions: ['js']
}])
},
manifest: {
name: `quickcommand`,
short_name: `quickcommand`,
description: `plugin for uTools`,
display: "standalone",
orientation: "portrait",
background_color: "#ffffff",
theme_color: "#027be3",
},
},
manifest: {
name: `quickcommand`,
short_name: `quickcommand`,
description: `plugin for uTools`,
display: 'standalone',
orientation: 'portrait',
background_color: '#ffffff',
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
cordova: {
// noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing
},
// Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-cordova-apps/configuring-cordova
cordova: {
// noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing
},
// Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-capacitor-apps/configuring-capacitor
capacitor: {
hideSplashscreen: true,
},
// Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-capacitor-apps/configuring-capacitor
capacitor: {
hideSplashscreen: true
},
// Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-electron-apps/configuring-electron
electron: {
bundler: "packager", // 'packager' or 'builder'
// Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-electron-apps/configuring-electron
electron: {
bundler: 'packager', // 'packager' or 'builder'
packager: {
// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
// OS X / Mac App Store
// appBundleId: '',
// appCategoryType: '',
// osxSign: '',
// protocol: 'myapp://path',
// Windows only
// win32metadata: { ... }
},
packager: {
// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
builder: {
// https://www.electron.build/configuration/configuration
// OS X / Mac App Store
// appBundleId: '',
// appCategoryType: '',
// osxSign: '',
// protocol: 'myapp://path',
appId: "quickcommand",
},
// Windows only
// win32metadata: { ... }
},
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
builder: {
// https://www.electron.build/configuration/configuration
chainWebpackMain(chain) {
chain.plugin("eslint-webpack-plugin").use(ESLintPlugin, [
{
extensions: ["js"],
},
]);
},
appId: 'quickcommand'
},
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
chainWebpackMain(chain) {
chain.plugin('eslint-webpack-plugin')
.use(ESLintPlugin, [{
extensions: ['js']
}])
},
chainWebpackPreload(chain) {
chain.plugin('eslint-webpack-plugin')
.use(ESLintPlugin, [{
extensions: ['js']
}])
},
}
}
chainWebpackPreload(chain) {
chain.plugin("eslint-webpack-plugin").use(ESLintPlugin, [
{
extensions: ["js"],
},
]);
},
},
};
});

View File

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

View File

@ -73,13 +73,13 @@
<script>
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 CommandLanguageBar from "components/CommandLanguageBar";
import EditorTools from "components/EditorTools";
// Performance Scripting > 500ms
const MonacoEditor = defineAsyncComponent(() =>
import("components/MonacoEditor")
import("components/editor/MonacoEditor")
);
export default {

View File

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

View File

@ -523,11 +523,10 @@
<script>
import { setCssVar } from "quasar";
import { ref } from "vue";
import AboutThis from "components/popup/AboutThis";
import PanelSetting from "components/popup/PanelSetting";
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";
export default {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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