From ad261f8e30e5cd22d0ac08a63d85e0bb64aa1052 Mon Sep 17 00:00:00 2001 From: 2214962083 <2214962083@qq.com> Date: Wed, 11 May 2022 00:52:54 +0800 Subject: [PATCH] fix(vue-playground): build error, remove monaco workers --- .../build-utils/vite-config-common.util.ts | 12 ++- packages/vue-playground/package.json | 12 +-- packages/vue-playground/scripts/build.ts | 9 --- .../src/playground/monaco/worker.ts | 79 ++++++++++--------- packages/vue-playground/vite.config.ts | 5 +- pnpm-lock.yaml | 7 +- stylelint.config.js | 1 + 7 files changed, 66 insertions(+), 59 deletions(-) diff --git a/packages/superman-shared/src/build-utils/vite-config-common.util.ts b/packages/superman-shared/src/build-utils/vite-config-common.util.ts index 73df21a..3890832 100644 --- a/packages/superman-shared/src/build-utils/vite-config-common.util.ts +++ b/packages/superman-shared/src/build-utils/vite-config-common.util.ts @@ -22,6 +22,7 @@ export const getOutputMap = (minify: boolean): Record => export interface CreateViteConfigOptions { minify?: boolean packagePath: string + formats?: LibraryFormats[] externalMap?: Record dedupe?: string[] // use the same version plugins?: PluginOption[] @@ -33,13 +34,17 @@ export const createViteConfig = (options: CreateViteConfigOptions): UserConfig = const { minify = false, packagePath, + formats = ['es', 'cjs', 'umd', 'iife'], externalMap = {}, dedupe: _dedupe = [], plugins = [], alias: _alias = [], test } = options - const outputMap = getOutputMap(minify) + + const outputMap = Object.fromEntries( + Object.entries(getOutputMap(minify)).filter(([format]) => formats.includes(format as LibraryFormats)) + ) as Record const pathResolve = (..._path: string[]) => path.resolve(packagePath, ..._path) @@ -88,7 +93,10 @@ export const createViteConfig = (options: CreateViteConfigOptions): UserConfig = }, rollupOptions: { output: { - globals: externalMap + globals: externalMap, + chunkFileNames: () => { + return '[format]/[name].[format].js' + } }, external: Object.keys(externalMap) }, diff --git a/packages/vue-playground/package.json b/packages/vue-playground/package.json index 5fa6107..6548850 100644 --- a/packages/vue-playground/package.json +++ b/packages/vue-playground/package.json @@ -28,8 +28,8 @@ "main": "./dist/index.cjs", "module": "./dist/index.mjs", "types": "./dist/index.d.ts", - "unpkg": "./dist/index.min.umd.js", - "jsdelivr": "./dist/index.min.umd.js", + "unpkg": "/dist/index.min.mjs", + "jsdelivr": "/dist/index.min.mjs", "exports": { ".": { "require": "./dist/index.cjs", @@ -52,7 +52,8 @@ }, "homepage": "https://github.com/2214962083/vue-superman#readme", "peerDependencies": { - "vue": "^3.2.0" + "vue": ">=3.0.0", + "monaco-editor": ">=0.30.0" }, "dependencies": { "@babel/types": "^7.17.10", @@ -63,9 +64,9 @@ "@vueuse/core": "^8.4.1", "emmet-monaco-es": "^5.1.0", "js-base64": "^3.7.2", - "monaco-editor": "^0.33.0", "sucrase": "^3.21.0", - "theme-vitesse": "^0.4.9" + "theme-vitesse": "^0.4.9", + "vue-demi": "*" }, "devDependencies": { "@types/node": "^17.0.24", @@ -77,6 +78,7 @@ "cross-env": "^7.0.3", "esno": "^0.14.1", "jsdom": "^19.0.0", + "monaco-editor": "^0.33.0", "rimraf": "^3.0.2", "superman-shared": "workspace:*", "typescript": "4.6.3", diff --git a/packages/vue-playground/scripts/build.ts b/packages/vue-playground/scripts/build.ts index bc7e0a9..2487982 100644 --- a/packages/vue-playground/scripts/build.ts +++ b/packages/vue-playground/scripts/build.ts @@ -2,15 +2,6 @@ import {buildUtils} from 'superman-shared' import {minifyConfig, unMinifyConfig, packagePath} from '../vite.config' const changeConfigFn: buildUtils.ChangeConfigFn = (config, options) => { - if (!config.build) config.build = {} - if (!config.build.rollupOptions) config.build.rollupOptions = {} - if (!config.build.rollupOptions.output) config.build.rollupOptions.output = {} - config.build.rollupOptions.output = { - inlineDynamicImports: false, - manualChunks: { - monaco: ['monaco-editor', 'emmet-monaco-es'] - } - } return buildUtils.changeViteConfig(config, options) } diff --git a/packages/vue-playground/src/playground/monaco/worker.ts b/packages/vue-playground/src/playground/monaco/worker.ts index 77c3fb2..5446a94 100644 --- a/packages/vue-playground/src/playground/monaco/worker.ts +++ b/packages/vue-playground/src/playground/monaco/worker.ts @@ -1,44 +1,45 @@ import {createSingletonPromise, SingletonPromiseReturn} from '@vueuse/core' export const loadWorkers = createSingletonPromise(async () => { - return await Promise.all([ - // load workers - (async () => { - const [ - {default: EditorWorker}, - {default: JsonWorker}, - {default: HtmlWorker}, - {default: TsWorker}, - {default: CssWorker} - ] = await Promise.all([ - import('monaco-editor/esm/vs/editor/editor.worker?worker'), - import('monaco-editor/esm/vs/language/json/json.worker?worker'), - import('monaco-editor/esm/vs/language/html/html.worker?worker'), - import('monaco-editor/esm/vs/language/typescript/ts.worker?worker'), - import('monaco-editor/esm/vs/language/css/css.worker?worker') - ]) + return Promise.resolve() + // return await Promise.all([ + // // load workers + // (async () => { + // const [ + // {default: EditorWorker}, + // {default: JsonWorker}, + // {default: HtmlWorker}, + // {default: TsWorker}, + // {default: CssWorker} + // ] = await Promise.all([ + // import('monaco-editor/esm/vs/editor/editor.worker?worker'), + // import('monaco-editor/esm/vs/language/json/json.worker?worker'), + // import('monaco-editor/esm/vs/language/html/html.worker?worker'), + // import('monaco-editor/esm/vs/language/typescript/ts.worker?worker'), + // import('monaco-editor/esm/vs/language/css/css.worker?worker') + // ]) - self.MonacoEnvironment = { - getWorker: function (workerId, label) { - switch (label) { - case 'json': - return new JsonWorker() - case 'css': - case 'scss': - case 'less': - return new CssWorker() - case 'html': - case 'handlebars': - case 'razor': - return new HtmlWorker() - case 'typescript': - case 'javascript': - return new TsWorker() - default: - return new EditorWorker() - } - } - } - })() - ]) + // self.MonacoEnvironment = { + // getWorker: function (workerId, label) { + // switch (label) { + // case 'json': + // return new JsonWorker() + // case 'css': + // case 'scss': + // case 'less': + // return new CssWorker() + // case 'html': + // case 'handlebars': + // case 'razor': + // return new HtmlWorker() + // case 'typescript': + // case 'javascript': + // return new TsWorker() + // default: + // return new EditorWorker() + // } + // } + // } + // })() + // ]) }) as SingletonPromiseReturn diff --git a/packages/vue-playground/vite.config.ts b/packages/vue-playground/vite.config.ts index 74cff7d..01bd06d 100644 --- a/packages/vue-playground/vite.config.ts +++ b/packages/vue-playground/vite.config.ts @@ -30,8 +30,11 @@ const createViteConfig = (options: CreateViteConfigOptions = {}): UserConfig => minify, plugins, alias, + formats: ['es', 'cjs'], + dedupe: ['monaco-editor'], externalMap: { - vue: 'Vue' + vue: 'Vue', + 'monaco-editor': 'monaco-editor' } }) } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3f6d56a..913834b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -280,6 +280,7 @@ importers: vite: ^2.9.5 vitest: ^0.9.3 vue: ^3.2.31 + vue-demi: 0.12.5 vue-tsc: ^0.34.7 dependencies: '@babel/types': 7.17.10 @@ -290,9 +291,9 @@ importers: '@vueuse/core': 8.4.1_vue@3.2.33 emmet-monaco-es: 5.1.0_monaco-editor@0.33.0 js-base64: 3.7.2 - monaco-editor: 0.33.0 sucrase: 3.21.0 theme-vitesse: 0.4.9 + vue-demi: 0.12.5_vue@3.2.33 devDependencies: '@types/node': 17.0.31 '@types/rimraf': 3.0.2 @@ -303,6 +304,7 @@ importers: cross-env: 7.0.3 esno: 0.14.1 jsdom: 19.0.0 + monaco-editor: 0.33.0 rimraf: 3.0.2 superman-shared: link:../superman-shared typescript: 4.6.3 @@ -7972,7 +7974,6 @@ packages: /monaco-editor/0.33.0: resolution: {integrity: sha512-VcRWPSLIUEgQJQIE0pVT8FcGBIgFoxz7jtqctE+IiCxWugD0DwgyQBcZBhdSrdMC84eumoqMZsGl2GTreOzwqw==} - dev: false /montag/1.2.1: resolution: {integrity: sha512-YFuR6t5KhDlmAnUmVSxGzNcpWqSDqxbd95tvnEnn7X9yFv7g3kDFoRjwyGayVdF/NNoWk7YW7IxUjilnGnoC5Q==} @@ -8041,7 +8042,7 @@ packages: dev: false /nano-memoize/1.3.0: - resolution: {integrity: sha512-yM/gMQHvA5EOtNGfEbJ8tmAveNjbckhzZ1hkNtMjY8zps3ocjPfp1kuJ1++OgtVHAhsGSTJttG3S6UV+FZZzxQ==, tarball: nano-memoize/-/nano-memoize-1.3.0.tgz} + resolution: {integrity: sha512-yM/gMQHvA5EOtNGfEbJ8tmAveNjbckhzZ1hkNtMjY8zps3ocjPfp1kuJ1++OgtVHAhsGSTJttG3S6UV+FZZzxQ==} dev: true /nanoid/3.3.4: diff --git a/stylelint.config.js b/stylelint.config.js index b584edd..6b72a28 100644 --- a/stylelint.config.js +++ b/stylelint.config.js @@ -49,6 +49,7 @@ module.exports = /** @type { Partial } */ ({ 'keyframes-name-pattern': null, 'color-function-notation': 'legacy', 'alpha-value-notation': 'number', + 'no-empty-source': null, 'at-rule-no-unknown': [ true, {