From 723f3d9136fa47dc42df27137b494a718ce5bcda Mon Sep 17 00:00:00 2001 From: rhlin Date: Fri, 29 Dec 2023 16:40:42 -0800 Subject: [PATCH 01/12] =?UTF-8?q?fix(monaco-eslint):=20=E4=BF=AE=E5=A4=8De?= =?UTF-8?q?slint-worker=E6=94=AF=E6=8C=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/design-core/package.json | 3 ++ .../public/monaco-linter/eslint.worker.js | 48 ++++++++++++------- packages/design-core/vite.config.js | 14 ++++++ 3 files changed, 48 insertions(+), 17 deletions(-) diff --git a/packages/design-core/package.json b/packages/design-core/package.json index c33e5d07bb..b2061665b8 100644 --- a/packages/design-core/package.json +++ b/packages/design-core/package.json @@ -85,6 +85,7 @@ "@vue/repl": "^2.9.0", "@vueuse/core": "^9.6.0", "element-resize-detector": "^1.2.4", + "eslint-linter-browserify": "^8.56.0", "file-saver": "^2.0.5", "html2canvas": "^1.4.1", "jszip": "^3.10.1", @@ -120,7 +121,9 @@ "rollup-plugin-visualizer": "^5.8.3", "svg-sprite-loader": "^6.0.11", "vite": "^4.3.7", + "vite-plugin-copy-files": "^1.1.1", "vite-plugin-monaco-editor": "^1.0.10", + "vite-plugin-static-copy": "^0.16.0", "vite-plugin-svg-icons": "^2.0.1", "vue-eslint-parser": "^8.0.1" }, diff --git a/packages/design-core/public/monaco-linter/eslint.worker.js b/packages/design-core/public/monaco-linter/eslint.worker.js index 05cf20d0ff..8d678af921 100644 --- a/packages/design-core/public/monaco-linter/eslint.worker.js +++ b/packages/design-core/public/monaco-linter/eslint.worker.js @@ -1,23 +1,36 @@ /** -* Copyright (c) 2023 - present TinyEngine Authors. -* Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. -* -* Use of this source code is governed by an MIT-style license. -* -* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, -* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR -* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. -* -*/ + * Copyright (c) 2023 - present TinyEngine Authors. + * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ // importScripts 不支持 esm, 此处使用 umd, 对外暴露的变量名:linter,需要填写openTiny的cdn地址 -importScripts('') +importScripts('./linter.js') +const defaultConfig = { + env: { + browser: true, + es6: true + }, + parserOptions: { + ecmaFeatures: { + jsx: true + }, + ecmaVersion: 'latest', + sourceType: 'module' + } +} // 根据公司的编码规范内置了 config/rules, 可以进一步定制 const config = { - ...self.linter.config, + ...defaultConfig, rules: { - ...self.linter.config.rules, + // ...self.eslint.config.rules, // JS 面板中,仅定义 function,但可能不使用该方法 'no-unused-vars': 'off', 'no-alert': 'off', @@ -31,17 +44,18 @@ const severityMap = { 2: 'Error', 1: 'Warning' } +const linter = new self.eslint.Linter() self.addEventListener('message', (event) => { const { code, version } = event.data - const ruleDefines = self.linter.esLinter.getRules() - const errs = self.linter.esLinter.verify(code, config) + const ruleDefines = linter.getRules() + const errs = linter.verify(code, config) const markers = errs.map(({ ruleId = '', line, endLine, column, endColumn, message, severity }) => ({ code: { - value: ruleId, - target: ruleDefines.get(ruleId)?.meta?.docs?.url + value: ruleId || '', + target: ruleDefines.get(ruleId)?.meta?.docs?.url || '' }, startLineNumber: line, endLineNumber: endLine, diff --git a/packages/design-core/vite.config.js b/packages/design-core/vite.config.js index 4aea414aab..6c48faf4f1 100644 --- a/packages/design-core/vite.config.js +++ b/packages/design-core/vite.config.js @@ -12,6 +12,7 @@ import lowcodeConfig from './config/lowcode.config' import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' import { importmapPlugin } from './scripts/externalDeps' import visualizer from 'rollup-plugin-visualizer' +import { viteStaticCopy } from 'vite-plugin-static-copy' const origin = 'http://localhost:9090/' @@ -71,6 +72,19 @@ const config = { ], symbolId: 'icon-[name]', inject: 'body-last' + }), + viteStaticCopy({ + targets: [ + { + src: 'node_modules/eslint-linter-browserify/linter.js', + dest: 'monaco-linter', + rename: 'linter.js', + transform: { + encoding: 'utf-8', + handler: (content) => content.replace('(window || globalThis)', 'global') // 修复eslint-linter-browserify用于serviceWorker内报找不到windows问题 + } + } + ] }) ], optimizeDeps: { From aaa9e8330b2e43b5b1f875f5c70883b262e2a18c Mon Sep 17 00:00:00 2001 From: rhlin Date: Mon, 8 Jan 2024 15:10:28 -0800 Subject: [PATCH 02/12] =?UTF-8?q?fix(linter):=20=E8=A7=A3=E5=86=B3cdn?= =?UTF-8?q?=E5=90=8Eeslint=20worker=E7=9B=B8=E5=AF=B9=E8=B7=AF=E5=BE=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/controller/js/linter.js | 24 ++++++++++--------- .../public/monaco-linter/eslint.worker.js | 6 +++-- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/packages/controller/js/linter.js b/packages/controller/js/linter.js index 14e9e7edb4..13d6048962 100644 --- a/packages/controller/js/linter.js +++ b/packages/controller/js/linter.js @@ -1,14 +1,14 @@ /** -* Copyright (c) 2023 - present TinyEngine Authors. -* Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. -* -* Use of this source code is governed by an MIT-style license. -* -* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, -* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR -* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. -* -*/ + * Copyright (c) 2023 - present TinyEngine Authors. + * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ import { PROD, BASE_URL } from './environments' @@ -17,7 +17,9 @@ export const initLinter = (editor, monacoInstance, state) => { // 线上环境,存在 worker 资源跨域的情况 if (PROD) { - const workerBlob = new Blob([`importScripts('${workerUrl}');`], { type: 'application/javascript' }) + const workerBlob = new Blob([`self.relativeDir='${BASE_URL}monaco-linter/';importScripts('${workerUrl}');`], { + type: 'application/javascript' + }) workerUrl = window.URL.createObjectURL(workerBlob) } diff --git a/packages/design-core/public/monaco-linter/eslint.worker.js b/packages/design-core/public/monaco-linter/eslint.worker.js index 8d678af921..0d14a3b1f2 100644 --- a/packages/design-core/public/monaco-linter/eslint.worker.js +++ b/packages/design-core/public/monaco-linter/eslint.worker.js @@ -10,8 +10,10 @@ * */ -// importScripts 不支持 esm, 此处使用 umd, 对外暴露的变量名:linter,需要填写openTiny的cdn地址 -importScripts('./linter.js') +// importScripts 不支持 esm (safari不支持), 此处使用 umd,脚本地址参考vite.config.js的静态拷贝配置 +const relativeDir = self.relativeDir || './' +importScripts(`${relativeDir}linter.js`) + const defaultConfig = { env: { browser: true, From dcb26688d865b4fefd2c87ea26cb9a58d9df02d7 Mon Sep 17 00:00:00 2001 From: rhlin Date: Tue, 2 Apr 2024 17:10:04 -0700 Subject: [PATCH 03/12] =?UTF-8?q?fix:=20=E7=A7=BB=E9=99=A4=E5=A4=9A?= =?UTF-8?q?=E4=BD=99=E7=9A=84=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/design-core/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/design-core/package.json b/packages/design-core/package.json index b2061665b8..eaf7d809d3 100644 --- a/packages/design-core/package.json +++ b/packages/design-core/package.json @@ -121,7 +121,6 @@ "rollup-plugin-visualizer": "^5.8.3", "svg-sprite-loader": "^6.0.11", "vite": "^4.3.7", - "vite-plugin-copy-files": "^1.1.1", "vite-plugin-monaco-editor": "^1.0.10", "vite-plugin-static-copy": "^0.16.0", "vite-plugin-svg-icons": "^2.0.1", From 5daf78462dcfe8ad17065cffd32b1d5de67e415b Mon Sep 17 00:00:00 2001 From: rhlin Date: Sun, 7 Apr 2024 18:06:13 -0700 Subject: [PATCH 04/12] =?UTF-8?q?feat(controller):=20eslint=E3=80=81pretti?= =?UTF-8?q?er=E6=96=B0=E5=A2=9E=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= =?UTF-8?q?=EF=BC=8Cworker=E6=96=87=E4=BB=B6=E6=89=93=E5=8C=85=E4=BB=8E?= =?UTF-8?q?=E4=B8=BB=E5=BA=94=E7=94=A8=E6=94=B9=E4=B8=BA=E9=9A=8F=E7=9D=80?= =?UTF-8?q?=E5=88=86=E5=BA=94=E7=94=A8=E6=89=93=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/controller/js/ast.js | 16 ++++++------ .../controller/js/config-files/eslint-rule.js | 8 ++++++ .../controller/js/config-files/prettierrc.js | 8 ++++++ packages/controller/js/linter.js | 11 ++++---- .../js/worker-files}/eslint.worker.js | 13 +++++----- packages/controller/package.json | 3 ++- packages/design-core/package.json | 4 +-- packages/design-core/vite.config.js | 14 ----------- packages/vue-generator/src/utils/index.js | 8 ++---- packages/vue-generator/vite.config.js | 25 +++++++++++-------- 10 files changed, 55 insertions(+), 55 deletions(-) create mode 100644 packages/controller/js/config-files/eslint-rule.js create mode 100644 packages/controller/js/config-files/prettierrc.js rename packages/{design-core/public/monaco-linter => controller/js/worker-files}/eslint.worker.js (83%) diff --git a/packages/controller/js/ast.js b/packages/controller/js/ast.js index 18026c0ded..c9e7d74b00 100644 --- a/packages/controller/js/ast.js +++ b/packages/controller/js/ast.js @@ -17,6 +17,7 @@ import prettier from 'prettier' import parserHtml from 'prettier/parser-html' import parseCss from 'prettier/parser-postcss' import parserBabel from 'prettier/parser-babel' +import prettierConfig from './config-files/prettierrc' const METHOD_REGEXP = /function.*?\(/ @@ -33,10 +34,7 @@ const formatScript = (string) => { const options = { parser: 'babel', plugins: [parserBabel], - printWidth: 120, - singleQuote: true, - semi: false, - trailingComma: 'none' + ...prettierConfig } try { // 低码中的编辑器大多只会输入js值,并不是一个完整的javascript表达式,无法格式化,因此需要特殊处理预格式化该种情形 @@ -53,21 +51,21 @@ const formatJson = (string) => parser: 'json', plugins: [parserBabel], trailingComma: 'es5', - tabWidth: 2, - semi: false, - singleQuote: true + ...prettierConfig }) const formatHtml = (string) => prettier.format(string, { parser: 'html', - plugins: [parserBabel, parserHtml] + plugins: [parserBabel, parserHtml], + ...prettierConfig }) const formatCss = (string) => prettier.format(string, { parser: 'css', - plugins: [parseCss] + plugins: [parseCss], + ...prettierConfig }) const formatterMap = { diff --git a/packages/controller/js/config-files/eslint-rule.js b/packages/controller/js/config-files/eslint-rule.js new file mode 100644 index 0000000000..ad64125826 --- /dev/null +++ b/packages/controller/js/config-files/eslint-rule.js @@ -0,0 +1,8 @@ +import eslintRecommended from '@eslint/js/src/configs/eslint-recommended.js' +export default { + ...eslintRecommended.rules, + 'no-console': 'error', + 'no-debugger': 'error', + 'space-before-function-paren': 'off', + 'no-use-before-define': 'error' +} diff --git a/packages/controller/js/config-files/prettierrc.js b/packages/controller/js/config-files/prettierrc.js new file mode 100644 index 0000000000..4fcde652fd --- /dev/null +++ b/packages/controller/js/config-files/prettierrc.js @@ -0,0 +1,8 @@ +export default { + semi: false, + singleQuote: true, + printWidth: 120, + trailingComma: 'none', + endOfLine: 'auto', + tabWidth: 2 +} diff --git a/packages/controller/js/linter.js b/packages/controller/js/linter.js index 13d6048962..f45027ab3f 100644 --- a/packages/controller/js/linter.js +++ b/packages/controller/js/linter.js @@ -10,20 +10,21 @@ * */ -import { PROD, BASE_URL } from './environments' +// import { PROD, BASE_URL } from './environments' +import eslintWorkerUrl from './worker-files/eslint.worker?worker&url' export const initLinter = (editor, monacoInstance, state) => { - let workerUrl = `${BASE_URL}monaco-linter/eslint.worker.js` + let workerUrl = new URL(eslintWorkerUrl, import.meta.url) // 线上环境,存在 worker 资源跨域的情况 - if (PROD) { - const workerBlob = new Blob([`self.relativeDir='${BASE_URL}monaco-linter/';importScripts('${workerUrl}');`], { + if (workerUrl.origin !== location.origin) { + const workerBlob = new Blob([`import('${workerUrl}');`], { type: 'application/javascript' }) workerUrl = window.URL.createObjectURL(workerBlob) } - const worker = new Worker(workerUrl) + const worker = new Worker(eslintWorkerUrl, { type: 'module' }) // 监听 ESLint web worker 的返回 worker.onmessage = function (event) { diff --git a/packages/design-core/public/monaco-linter/eslint.worker.js b/packages/controller/js/worker-files/eslint.worker.js similarity index 83% rename from packages/design-core/public/monaco-linter/eslint.worker.js rename to packages/controller/js/worker-files/eslint.worker.js index 0d14a3b1f2..017b354e87 100644 --- a/packages/design-core/public/monaco-linter/eslint.worker.js +++ b/packages/controller/js/worker-files/eslint.worker.js @@ -10,9 +10,8 @@ * */ -// importScripts 不支持 esm (safari不支持), 此处使用 umd,脚本地址参考vite.config.js的静态拷贝配置 -const relativeDir = self.relativeDir || './' -importScripts(`${relativeDir}linter.js`) +import { Linter } from 'eslint-linter-browserify' +import eslintRule from '../config-files/eslint-rule' const defaultConfig = { env: { @@ -32,11 +31,11 @@ const defaultConfig = { const config = { ...defaultConfig, rules: { - // ...self.eslint.config.rules, + ...(eslintRule || {}), // JS 面板中,仅定义 function,但可能不使用该方法 'no-unused-vars': 'off', - 'no-alert': 'off', - 'no-console': 'off' + 'no-alert': 'off' + // 'no-console': 'off' }, settings: {} } @@ -46,7 +45,7 @@ const severityMap = { 2: 'Error', 1: 'Warning' } -const linter = new self.eslint.Linter() +const linter = new Linter() self.addEventListener('message', (event) => { const { code, version } = event.data diff --git a/packages/controller/package.json b/packages/controller/package.json index 45d03def4e..e26ce1ce96 100644 --- a/packages/controller/package.json +++ b/packages/controller/package.json @@ -36,13 +36,14 @@ "@babel/traverse": "7.18.13", "@opentiny/tiny-engine-builtin-component": "workspace:*", "@opentiny/tiny-engine-http": "workspace:*", - "@opentiny/tiny-engine-utils": "workspace:*", "@opentiny/tiny-engine-i18n-host": "workspace:*", + "@opentiny/tiny-engine-utils": "workspace:*", "@opentiny/vue": "~3.10.0", "@opentiny/vue-locale": "~3.10.0", "@opentiny/vue-renderless": "~3.10.0", "@vue/shared": "^3.3.4", "css-tree": "^2.3.1", + "eslint-linter-browserify": "9.0.0", "prettier": "2.7.1" }, "devDependencies": { diff --git a/packages/design-core/package.json b/packages/design-core/package.json index eaf7d809d3..1b70bd6432 100644 --- a/packages/design-core/package.json +++ b/packages/design-core/package.json @@ -85,12 +85,13 @@ "@vue/repl": "^2.9.0", "@vueuse/core": "^9.6.0", "element-resize-detector": "^1.2.4", - "eslint-linter-browserify": "^8.56.0", + "eslint-linter-browserify": "9.0.0", "file-saver": "^2.0.5", "html2canvas": "^1.4.1", "jszip": "^3.10.1", "monaco-editor": "0.33.0", "prettier": "2.7.1", + "rollup": "^4.14.1", "sortablejs": "^1.14.0", "vue": "^3.4.15", "vue-i18n": "^9.9.0" @@ -122,7 +123,6 @@ "svg-sprite-loader": "^6.0.11", "vite": "^4.3.7", "vite-plugin-monaco-editor": "^1.0.10", - "vite-plugin-static-copy": "^0.16.0", "vite-plugin-svg-icons": "^2.0.1", "vue-eslint-parser": "^8.0.1" }, diff --git a/packages/design-core/vite.config.js b/packages/design-core/vite.config.js index 6c48faf4f1..4aea414aab 100644 --- a/packages/design-core/vite.config.js +++ b/packages/design-core/vite.config.js @@ -12,7 +12,6 @@ import lowcodeConfig from './config/lowcode.config' import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' import { importmapPlugin } from './scripts/externalDeps' import visualizer from 'rollup-plugin-visualizer' -import { viteStaticCopy } from 'vite-plugin-static-copy' const origin = 'http://localhost:9090/' @@ -72,19 +71,6 @@ const config = { ], symbolId: 'icon-[name]', inject: 'body-last' - }), - viteStaticCopy({ - targets: [ - { - src: 'node_modules/eslint-linter-browserify/linter.js', - dest: 'monaco-linter', - rename: 'linter.js', - transform: { - encoding: 'utf-8', - handler: (content) => content.replace('(window || globalThis)', 'global') // 修复eslint-linter-browserify用于serviceWorker内报找不到windows问题 - } - } - ] }) ], optimizeDeps: { diff --git a/packages/vue-generator/src/utils/index.js b/packages/vue-generator/src/utils/index.js index e39e9f1003..b6f94e9b89 100644 --- a/packages/vue-generator/src/utils/index.js +++ b/packages/vue-generator/src/utils/index.js @@ -13,6 +13,7 @@ import { capitalize, hyphenate } from '@vue/shared' import { tinyIcon as unifyIconName } from '../pre-processor' import { TINY_ICON, JS_FUNCTION } from '../constant' +import prettierConfig from '@opentiny/tiny-engine=controller/js/config-files/prettierrc' const getTypeOfSchema = (schema) => schema.componentName @@ -69,12 +70,7 @@ const lowerFirst = (str) => str[0].toLowerCase() + str.slice(1) */ const toPascalCase = (input, delimiter = '-') => input.split(delimiter).map(capitalize).join('') -const commonOpts = { - printWidth: 120, - semi: false, - singleQuote: true, - trailingComma: 'none' -} +const commonOpts = prettierConfig const prettierOpts = { vue: { ...commonOpts, parser: 'vue', htmlWhitespaceSensitivity: 'ignore' }, js: { ...commonOpts, parser: 'typescript' } diff --git a/packages/vue-generator/vite.config.js b/packages/vue-generator/vite.config.js index 69ea63513f..a0cc3d3a2d 100644 --- a/packages/vue-generator/vite.config.js +++ b/packages/vue-generator/vite.config.js @@ -1,14 +1,14 @@ /** -* Copyright (c) 2023 - present TinyEngine Authors. -* Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. -* -* Use of this source code is governed by an MIT-style license. -* -* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, -* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR -* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. -* -*/ + * Copyright (c) 2023 - present TinyEngine Authors. + * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ import { defineConfig } from 'vite' import path from 'path' @@ -20,6 +20,9 @@ export default defineConfig({ entry: path.resolve(__dirname, './src/index.js'), formats: ['cjs'] }, - sourcemap: true + sourcemap: true, + rollupOptions: { + external: [/@opentiny\/tiny-engine.*/] + } } }) From 4e5db653831d68356a7522352c8c99d9cbb24c3e Mon Sep 17 00:00:00 2001 From: rhlin Date: Sun, 7 Apr 2024 18:41:09 -0700 Subject: [PATCH 05/12] =?UTF-8?q?fix(controller):=20=E4=BF=AE=E5=A4=8Desli?= =?UTF-8?q?nt=20worker=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/controller/js/linter.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/controller/js/linter.js b/packages/controller/js/linter.js index f45027ab3f..d4fd292c29 100644 --- a/packages/controller/js/linter.js +++ b/packages/controller/js/linter.js @@ -24,7 +24,7 @@ export const initLinter = (editor, monacoInstance, state) => { workerUrl = window.URL.createObjectURL(workerBlob) } - const worker = new Worker(eslintWorkerUrl, { type: 'module' }) + const worker = new Worker(workerUrl, { type: 'module' }) // 监听 ESLint web worker 的返回 worker.onmessage = function (event) { From 8d00f6e3a2bd57b6a6003f00072fb4a3a805c2eb Mon Sep 17 00:00:00 2001 From: rhlin Date: Mon, 8 Apr 2024 13:01:25 -0700 Subject: [PATCH 06/12] =?UTF-8?q?feat(controller):=20eslint-linter-browser?= =?UTF-8?q?ify=20=E9=99=8D=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/controller/package.json | 2 +- packages/design-core/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/controller/package.json b/packages/controller/package.json index e26ce1ce96..c03698ea7e 100644 --- a/packages/controller/package.json +++ b/packages/controller/package.json @@ -43,7 +43,7 @@ "@opentiny/vue-renderless": "~3.10.0", "@vue/shared": "^3.3.4", "css-tree": "^2.3.1", - "eslint-linter-browserify": "9.0.0", + "eslint-linter-browserify": "8.57.0", "prettier": "2.7.1" }, "devDependencies": { diff --git a/packages/design-core/package.json b/packages/design-core/package.json index 1b70bd6432..32ac76809c 100644 --- a/packages/design-core/package.json +++ b/packages/design-core/package.json @@ -85,7 +85,7 @@ "@vue/repl": "^2.9.0", "@vueuse/core": "^9.6.0", "element-resize-detector": "^1.2.4", - "eslint-linter-browserify": "9.0.0", + "eslint-linter-browserify": "8.57.0", "file-saver": "^2.0.5", "html2canvas": "^1.4.1", "jszip": "^3.10.1", From e0d66ae9539a48730c95a608626d8e86ad257e49 Mon Sep 17 00:00:00 2001 From: rhlin Date: Mon, 8 Apr 2024 13:07:04 -0700 Subject: [PATCH 07/12] =?UTF-8?q?build:=20=E5=8E=BB=E6=8E=89define=20proce?= =?UTF-8?q?ss.env=E8=AE=BE=E7=BD=AE=E4=B8=BA=E7=A9=BA=E5=AF=B9=E8=B1=A1?= =?UTF-8?q?=EF=BC=88=E6=97=A7=E7=89=88tinyVue=E5=BA=93=E9=9C=80=E8=A6=81?= =?UTF-8?q?=EF=BC=89=EF=BC=8C=E5=BD=93=E5=89=8D=E5=BC=95=E8=B5=B7eslint-li?= =?UTF-8?q?nter-browserify=E8=84=9A=E6=9C=AC(=E5=B7=B2=E7=BB=8F=E5=A4=84?= =?UTF-8?q?=E7=90=86=E8=BF=87process=E7=9A=84=E5=8C=85)=E6=9E=84=E5=BB=BA?= =?UTF-8?q?=E6=8A=A5=E9=94=99=EF=BC=8C=E4=B8=94=E4=B8=BB=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E6=9C=89nodePollyfill=E5=8F=AF=E4=BB=A5=E5=A4=84=E7=90=86proce?= =?UTF-8?q?ss=E5=9C=BA=E6=99=AF=E9=87=8D=E5=A4=8D=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/canvas/vite.config.js | 3 --- packages/common/vite.config.js | 3 --- packages/controller/vite.config.js | 3 --- packages/design-core/vite.config.js | 3 --- 4 files changed, 12 deletions(-) diff --git a/packages/canvas/vite.config.js b/packages/canvas/vite.config.js index 1f4a573a98..e04a41f5de 100644 --- a/packages/canvas/vite.config.js +++ b/packages/canvas/vite.config.js @@ -23,9 +23,6 @@ export default defineConfig({ '@': path.resolve(__dirname, 'src') } }, - define: { - 'process.env': {} - }, plugins: [ vue({ template: { diff --git a/packages/common/vite.config.js b/packages/common/vite.config.js index fbd436ce01..030c3914de 100644 --- a/packages/common/vite.config.js +++ b/packages/common/vite.config.js @@ -20,9 +20,6 @@ export default defineConfig({ plugins: [vue(), vueJsx()], publicDir: false, resolve: {}, - define: { - 'process.env': {} - }, build: { cssCodeSplit: false, lib: { diff --git a/packages/controller/vite.config.js b/packages/controller/vite.config.js index bd77aefff3..511a0efe62 100644 --- a/packages/controller/vite.config.js +++ b/packages/controller/vite.config.js @@ -20,9 +20,6 @@ export default defineConfig({ plugins: [vue(), vueJsx()], publicDir: false, resolve: {}, - define: { - 'process.env': {} - }, build: { cssCodeSplit: false, lib: { diff --git a/packages/design-core/vite.config.js b/packages/design-core/vite.config.js index 4aea414aab..6dde1bcf89 100644 --- a/packages/design-core/vite.config.js +++ b/packages/design-core/vite.config.js @@ -93,9 +93,6 @@ const config = { ] } }, - define: { - 'process.env': {} - }, build: { commonjsOptions: { transformMixedEsModules: true, From f7c6f40d4917a2f0e5a9042a948252411e47731f Mon Sep 17 00:00:00 2001 From: rhlin Date: Mon, 8 Apr 2024 16:36:51 -0700 Subject: [PATCH 08/12] =?UTF-8?q?fix(controller):=20=E5=8E=BB=E6=8E=89?= =?UTF-8?q?=E5=A4=9A=E4=BD=99=E6=B3=A8=E9=87=8A=E5=92=8C=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/controller/js/linter.js | 1 - packages/controller/js/worker-files/eslint.worker.js | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/controller/js/linter.js b/packages/controller/js/linter.js index d4fd292c29..edfb3f1a61 100644 --- a/packages/controller/js/linter.js +++ b/packages/controller/js/linter.js @@ -10,7 +10,6 @@ * */ -// import { PROD, BASE_URL } from './environments' import eslintWorkerUrl from './worker-files/eslint.worker?worker&url' export const initLinter = (editor, monacoInstance, state) => { diff --git a/packages/controller/js/worker-files/eslint.worker.js b/packages/controller/js/worker-files/eslint.worker.js index 017b354e87..b5d72785fc 100644 --- a/packages/controller/js/worker-files/eslint.worker.js +++ b/packages/controller/js/worker-files/eslint.worker.js @@ -34,8 +34,8 @@ const config = { ...(eslintRule || {}), // JS 面板中,仅定义 function,但可能不使用该方法 'no-unused-vars': 'off', - 'no-alert': 'off' - // 'no-console': 'off' + 'no-alert': 'off', + 'no-console': 'off' }, settings: {} } From 1164b4d955c6b3935c207ab8e27c96065ac7e23f Mon Sep 17 00:00:00 2001 From: rhlin Date: Tue, 9 Apr 2024 11:52:19 -0700 Subject: [PATCH 09/12] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=A3=80=E8=A7=86=E9=97=AE=E9=A2=98=EF=BC=8C=20?= =?UTF-8?q?=E5=8E=BB=E6=8E=89=E6=B3=A8=E9=87=8A=EF=BC=8C=E8=A1=A5=E5=85=85?= =?UTF-8?q?=E5=8C=85=E5=BC=95=E7=94=A8=E5=8E=BB=E6=8E=89external=EF=BC=8C?= =?UTF-8?q?=E5=8E=BB=E6=8E=89=E5=A4=9A=E4=BD=99=E7=9A=84=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/controller/js/worker-files/eslint.worker.js | 3 +-- packages/design-core/package.json | 1 - packages/vue-generator/package.json | 1 + packages/vue-generator/src/utils/index.js | 2 +- packages/vue-generator/vite.config.js | 5 +---- 5 files changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/controller/js/worker-files/eslint.worker.js b/packages/controller/js/worker-files/eslint.worker.js index b5d72785fc..7d6e79e35b 100644 --- a/packages/controller/js/worker-files/eslint.worker.js +++ b/packages/controller/js/worker-files/eslint.worker.js @@ -27,11 +27,10 @@ const defaultConfig = { } } -// 根据公司的编码规范内置了 config/rules, 可以进一步定制 const config = { ...defaultConfig, rules: { - ...(eslintRule || {}), + ...eslintRule, // JS 面板中,仅定义 function,但可能不使用该方法 'no-unused-vars': 'off', 'no-alert': 'off', diff --git a/packages/design-core/package.json b/packages/design-core/package.json index 32ac76809c..902086058f 100644 --- a/packages/design-core/package.json +++ b/packages/design-core/package.json @@ -91,7 +91,6 @@ "jszip": "^3.10.1", "monaco-editor": "0.33.0", "prettier": "2.7.1", - "rollup": "^4.14.1", "sortablejs": "^1.14.0", "vue": "^3.4.15", "vue-i18n": "^9.9.0" diff --git a/packages/vue-generator/package.json b/packages/vue-generator/package.json index 386f06083c..d3ce22c520 100644 --- a/packages/vue-generator/package.json +++ b/packages/vue-generator/package.json @@ -26,6 +26,7 @@ "license": "MIT", "homepage": "https://opentiny.design/tiny-engine", "dependencies": { + "@opentiny/tiny-engine-controller": "workspace:*", "@opentiny/tiny-engine-builtin-component": "workspace:*", "@vue/compiler-sfc": "3.2.45", "@vue/shared": "^3.3.4", diff --git a/packages/vue-generator/src/utils/index.js b/packages/vue-generator/src/utils/index.js index b6f94e9b89..d9e7b1bd03 100644 --- a/packages/vue-generator/src/utils/index.js +++ b/packages/vue-generator/src/utils/index.js @@ -13,7 +13,7 @@ import { capitalize, hyphenate } from '@vue/shared' import { tinyIcon as unifyIconName } from '../pre-processor' import { TINY_ICON, JS_FUNCTION } from '../constant' -import prettierConfig from '@opentiny/tiny-engine=controller/js/config-files/prettierrc' +import prettierConfig from '@opentiny/tiny-engine-controller/js/config-files/prettierrc' const getTypeOfSchema = (schema) => schema.componentName diff --git a/packages/vue-generator/vite.config.js b/packages/vue-generator/vite.config.js index a0cc3d3a2d..96ac13f6a5 100644 --- a/packages/vue-generator/vite.config.js +++ b/packages/vue-generator/vite.config.js @@ -20,9 +20,6 @@ export default defineConfig({ entry: path.resolve(__dirname, './src/index.js'), formats: ['cjs'] }, - sourcemap: true, - rollupOptions: { - external: [/@opentiny\/tiny-engine.*/] - } + sourcemap: true } }) From 48d1b1e0079397eb6e6846df146d6718c8eb230b Mon Sep 17 00:00:00 2001 From: rhlin Date: Wed, 10 Apr 2024 15:29:45 -0700 Subject: [PATCH 10/12] =?UTF-8?q?feat:=20=E5=8D=95=E9=A1=B5=E9=A2=84?= =?UTF-8?q?=E8=A7=88=E6=A0=BC=E5=BC=8F=E5=8C=96=E7=BB=9F=E4=B8=80=E5=BC=95?= =?UTF-8?q?=E7=94=A8prettierrc=E6=96=87=E4=BB=B6=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/toolbars/generate-vue/src/generateCode.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/packages/toolbars/generate-vue/src/generateCode.js b/packages/toolbars/generate-vue/src/generateCode.js index ed3016162c..db09d40afd 100644 --- a/packages/toolbars/generate-vue/src/generateCode.js +++ b/packages/toolbars/generate-vue/src/generateCode.js @@ -14,6 +14,7 @@ import prettier from 'prettier' import parserHtml from 'prettier/parser-html' import parseCss from 'prettier/parser-postcss' import parserBabel from 'prettier/parser-babel' +import prettierCommon from '@opentiny/tiny-engine-controller/js/config-files/prettierrc' // LOWCODE_TODO: 从本地配置文件获取 const basePaths = { @@ -36,13 +37,6 @@ const FILE_TYPES = { Store: 'Store' } -const prettierCommon = { - printWidth: 120, - semi: false, - singleQuote: true, - trailingComma: 'none' -} - function formatScript(string) { return prettier.format(string, { ...prettierCommon, From 5bec5bd318f98462859f17f6ade44b9d445ae082 Mon Sep 17 00:00:00 2001 From: rhlin Date: Tue, 16 Apr 2024 11:55:15 -0700 Subject: [PATCH 11/12] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E5=AD=90?= =?UTF-8?q?=E5=8C=85=E7=9A=84js=E6=B2=A1=E6=9C=89=E6=89=93=E5=8C=85?= =?UTF-8?q?=E4=B8=BA=E5=85=A5=E5=8F=A3=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/controller/vite.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/controller/vite.config.js b/packages/controller/vite.config.js index a51947202a..4eb09f2d03 100644 --- a/packages/controller/vite.config.js +++ b/packages/controller/vite.config.js @@ -17,7 +17,7 @@ import vueJsx from '@vitejs/plugin-vue-jsx' import { glob } from 'glob' import { fileURLToPath } from 'node:url' -const jsEntries = glob.sync('./js/**.js').map((file) => { +const jsEntries = glob.sync('./js/**/*.js').map((file) => { return [file.slice(0, file.length - path.extname(file).length), fileURLToPath(new URL(file, import.meta.url))] }) From d31650111f7366c34498acab3b96dea36cb0ead8 Mon Sep 17 00:00:00 2001 From: rhlin Date: Tue, 16 Apr 2024 12:07:10 -0700 Subject: [PATCH 12/12] =?UTF-8?q?fix(controller):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=9B=A0=E7=9B=AE=E5=BD=95=E7=BB=93=E6=9E=84=E6=94=B9=E5=8F=98?= =?UTF-8?q?=E9=9C=80=E8=A6=81worker=E6=89=93=E5=8C=85=E4=B8=BA=E7=9B=B8?= =?UTF-8?q?=E5=AF=B9=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/controller/vite.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/controller/vite.config.js b/packages/controller/vite.config.js index 4eb09f2d03..6193925a3e 100644 --- a/packages/controller/vite.config.js +++ b/packages/controller/vite.config.js @@ -26,6 +26,7 @@ export default defineConfig({ plugins: [vue(), vueJsx()], publicDir: false, resolve: {}, + base: './', define: { 'import.meta': 'import.meta' },