fix: 优化代码编辑器动态d.ts提示失效

fix: 优化代码编辑器动态d.ts提示失效
This commit is contained in:
XieYongHong 2023-07-21 11:07:25 +08:00 committed by GitHub
parent bcc85f1dfe
commit 143144a64e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 316 additions and 389 deletions

232
package-lock.json generated
View File

@ -20,8 +20,8 @@
"event-source-polyfill": "^1.0.31",
"global": "^4.4.0",
"jetlinks-store": "^0.0.3",
"jetlinks-ui-components": "^1.0.5",
"js-cookie": "^3.0.1",
"jsencrypt": "^3.3.2",
"less": "^4.1.3",
"less-loader": "^11.1.0",
"lodash-es": "^4.17.21",
@ -36,6 +36,7 @@
"v-clipboard3": "^0.1.4",
"vite-plugin-monaco-editor": "^1.1.0",
"vue": "^3.2.45",
"vue-cropper": "^1.0.9",
"vue-json-viewer": "^3.0.4",
"vue-router": "^4.1.6",
"vue3-json-viewer": "^2.2.2",
@ -59,6 +60,7 @@
"typescript": "^4.9.3",
"vite": "^4.0.0",
"vite-plugin-html": "^3.2.0",
"vite-plugin-progress": "^0.0.7",
"vite-plugin-style-import": "^2.0.0",
"vite-plugin-vue-setup-extend": "^0.4.0",
"vue-tsc": "^1.0.11"
@ -3013,65 +3015,6 @@
"integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==",
"dev": true
},
"node_modules/colorpicker-v3": {
"version": "2.10.2",
"resolved": "https://registry.jetlinks.cn/colorpicker-v3/-/colorpicker-v3-2.10.2.tgz",
"integrity": "sha512-ZWPq5wcugS3NcL7DwYqVSP5mE/x45FK31olGpig+Tko5jUXk0danfEYi1Aei3lgYs+Z0zAfhbhqVuDgOdUs5Mw==",
"license": "ISC",
"dependencies": {
"@vueuse/core": "^7.5.5",
"vue": "^3.2.25"
}
},
"node_modules/colorpicker-v3/node_modules/@vueuse/core": {
"version": "7.7.1",
"resolved": "https://registry.jetlinks.cn/@vueuse%2fcore/-/core-7.7.1.tgz",
"integrity": "sha512-PRRgbATMpoeUmkCEBtUeJgOwtew8s+4UsEd+Pm7MhkjL2ihCNrSqxNVtM6NFE4uP2sWnkGcZpCjPuNSxowJ1Ow==",
"license": "MIT",
"dependencies": {
"@vueuse/shared": "7.7.1",
"vue-demi": "*"
},
"funding": {
"url": "https://github.com/sponsors/antfu"
},
"peerDependencies": {
"@vue/composition-api": "^1.1.0",
"vue": "^2.6.0 || ^3.2.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
},
"vue": {
"optional": true
}
}
},
"node_modules/colorpicker-v3/node_modules/@vueuse/core/node_modules/@vueuse/shared": {
"version": "7.7.1",
"resolved": "https://registry.jetlinks.cn/@vueuse%2fshared/-/shared-7.7.1.tgz",
"integrity": "sha512-rN2qd22AUl7VdBxihagWyhUNHCyVk9IpvBTTfHoLH9G7rGE552X1f+zeCfehuno0zXif13jPw+icW/wn2a0rnQ==",
"license": "MIT",
"dependencies": {
"vue-demi": "*"
},
"funding": {
"url": "https://github.com/sponsors/antfu"
},
"peerDependencies": {
"@vue/composition-api": "^1.1.0",
"vue": "^2.6.0 || ^3.2.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
},
"vue": {
"optional": true
}
}
},
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@ -5177,24 +5120,6 @@
"resolved": "https://registry.npmjs.org/jetlinks-store/-/jetlinks-store-0.0.3.tgz",
"integrity": "sha512-AZf/soh1hmmwjBZ00fr1emuMEydeReaI6IBTGByQYhTmK1Zd5pQAxC7WLek2snRAn/HHDgJfVz2hjditKThl6Q=="
},
"node_modules/jetlinks-ui-components": {
"version": "1.0.5",
"resolved": "http://47.108.170.157:9013/jetlinks-ui-components/-/jetlinks-ui-components-1.0.5.tgz",
"integrity": "sha512-zrMe/4PjtWNCQtlP6kNLA7hVyQ7ftPSgivQZp8TGcpbUMOU/IYyCLQ0+VoWcqEopTSt1zEzEazodR4EjEzv7pQ==",
"dependencies": {
"@vueuse/core": "^9.12.0",
"ant-design-vue": "^3.2.15",
"colorpicker-v3": "^2.10.2",
"lodash-es": "^4.17.21",
"monaco-editor": "^0.35.0"
}
},
"node_modules/jetlinks-ui-components/node_modules/monaco-editor": {
"version": "0.35.0",
"resolved": "https://registry.jetlinks.cn/monaco-editor/-/monaco-editor-0.35.0.tgz",
"integrity": "sha512-BJfkAZ0EJ7JgrgWzqjfBNP9hPSS8NlfECEDMEIIiozV2UaPq22yeuOjgbd3TwMh3anH0krWZirXZfn8KUSxiOA==",
"license": "MIT"
},
"node_modules/js-cookie": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz",
@ -5226,6 +5151,12 @@
"integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
"license": "MIT"
},
"node_modules/jsencrypt": {
"version": "3.3.2",
"resolved": "http://registry.jetlinks.cn/jsencrypt/-/jsencrypt-3.3.2.tgz",
"integrity": "sha512-arQR1R1ESGdAxY7ZheWr12wCaF2yF47v5qpB76TtV64H1pyGudk9Hvw8Y9tb/FiTIaaTRUyaSnm5T/Y53Ghm/A==",
"license": "MIT"
},
"node_modules/jsesc": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
@ -10905,6 +10836,16 @@
"node": ">= 0.6.0"
}
},
"node_modules/progress": {
"version": "2.0.3",
"resolved": "http://registry.jetlinks.cn/progress/-/progress-2.0.3.tgz",
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/prop-ini": {
"version": "0.0.2",
"resolved": "https://registry.npmmirror.com/prop-ini/-/prop-ini-0.0.2.tgz",
@ -11024,6 +10965,23 @@
"rc": "cli.js"
}
},
"node_modules/rd": {
"version": "2.0.1",
"resolved": "http://registry.jetlinks.cn/rd/-/rd-2.0.1.tgz",
"integrity": "sha512-/XdKU4UazUZTXFmI0dpABt8jSXPWcEyaGdk340KdHnsEOdkTctlX23aAK7ChQDn39YGNlAJr1M5uvaKt4QnpNw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/node": "^10.3.6"
}
},
"node_modules/rd/node_modules/@types/node": {
"version": "10.17.60",
"resolved": "http://registry.jetlinks.cn/@types%2fnode/-/node-10.17.60.tgz",
"integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==",
"dev": true,
"license": "MIT"
},
"node_modules/read-pkg": {
"version": "5.2.0",
"resolved": "https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz",
@ -12728,6 +12686,25 @@
"monaco-editor": ">=0.33.0"
}
},
"node_modules/vite-plugin-progress": {
"version": "0.0.7",
"resolved": "http://registry.jetlinks.cn/vite-plugin-progress/-/vite-plugin-progress-0.0.7.tgz",
"integrity": "sha512-zyvKdcc/X+6hnw3J1HVV1TKrlFKC4Rh8GnDnWG/2qhRXjqytTcM++xZ+SAPnoDsSyWl8O93ymK0wZRgHAoglEQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"picocolors": "^1.0.0",
"progress": "^2.0.3",
"rd": "^2.0.1"
},
"engines": {
"node": ">=14",
"pnpm": ">=7.0.0"
},
"peerDependencies": {
"vite": ">2.0.0-0"
}
},
"node_modules/vite-plugin-style-import": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/vite-plugin-style-import/-/vite-plugin-style-import-2.0.0.tgz",
@ -12808,6 +12785,12 @@
"@vue/shared": "3.2.45"
}
},
"node_modules/vue-cropper": {
"version": "1.0.9",
"resolved": "http://registry.jetlinks.cn/vue-cropper/-/vue-cropper-1.0.9.tgz",
"integrity": "sha512-JhQwxmjqmQohzI7sAp5O/Rfdxuw5HOEYkKjnp/De7iCi6c8Mv6M3N9HpMt9xgWCFchX3/DfXBv2axCZOCg3G8Q==",
"license": "ISC"
},
"node_modules/vue-demi": {
"version": "0.13.11",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz",
@ -15595,36 +15578,6 @@
"integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==",
"dev": true
},
"colorpicker-v3": {
"version": "2.10.2",
"resolved": "https://registry.jetlinks.cn/colorpicker-v3/-/colorpicker-v3-2.10.2.tgz",
"integrity": "sha512-ZWPq5wcugS3NcL7DwYqVSP5mE/x45FK31olGpig+Tko5jUXk0danfEYi1Aei3lgYs+Z0zAfhbhqVuDgOdUs5Mw==",
"requires": {
"@vueuse/core": "^7.5.5",
"vue": "^3.2.25"
},
"dependencies": {
"@vueuse/core": {
"version": "7.7.1",
"resolved": "https://registry.jetlinks.cn/@vueuse%2fcore/-/core-7.7.1.tgz",
"integrity": "sha512-PRRgbATMpoeUmkCEBtUeJgOwtew8s+4UsEd+Pm7MhkjL2ihCNrSqxNVtM6NFE4uP2sWnkGcZpCjPuNSxowJ1Ow==",
"requires": {
"@vueuse/shared": "7.7.1",
"vue-demi": "*"
},
"dependencies": {
"@vueuse/shared": {
"version": "7.7.1",
"resolved": "https://registry.jetlinks.cn/@vueuse%2fshared/-/shared-7.7.1.tgz",
"integrity": "sha512-rN2qd22AUl7VdBxihagWyhUNHCyVk9IpvBTTfHoLH9G7rGE552X1f+zeCfehuno0zXif13jPw+icW/wn2a0rnQ==",
"requires": {
"vue-demi": "*"
}
}
}
}
}
},
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@ -17277,25 +17230,6 @@
"resolved": "https://registry.npmjs.org/jetlinks-store/-/jetlinks-store-0.0.3.tgz",
"integrity": "sha512-AZf/soh1hmmwjBZ00fr1emuMEydeReaI6IBTGByQYhTmK1Zd5pQAxC7WLek2snRAn/HHDgJfVz2hjditKThl6Q=="
},
"jetlinks-ui-components": {
"version": "1.0.5",
"resolved": "http://47.108.170.157:9013/jetlinks-ui-components/-/jetlinks-ui-components-1.0.5.tgz",
"integrity": "sha512-zrMe/4PjtWNCQtlP6kNLA7hVyQ7ftPSgivQZp8TGcpbUMOU/IYyCLQ0+VoWcqEopTSt1zEzEazodR4EjEzv7pQ==",
"requires": {
"@vueuse/core": "^9.12.0",
"ant-design-vue": "^3.2.15",
"colorpicker-v3": "^2.10.2",
"lodash-es": "^4.17.21",
"monaco-editor": "^0.35.0"
},
"dependencies": {
"monaco-editor": {
"version": "0.35.0",
"resolved": "https://registry.jetlinks.cn/monaco-editor/-/monaco-editor-0.35.0.tgz",
"integrity": "sha512-BJfkAZ0EJ7JgrgWzqjfBNP9hPSS8NlfECEDMEIIiozV2UaPq22yeuOjgbd3TwMh3anH0krWZirXZfn8KUSxiOA=="
}
}
},
"js-cookie": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz",
@ -17320,6 +17254,11 @@
"resolved": "https://registry.jetlinks.cn/jsbn/-/jsbn-0.1.1.tgz",
"integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
},
"jsencrypt": {
"version": "3.3.2",
"resolved": "http://registry.jetlinks.cn/jsencrypt/-/jsencrypt-3.3.2.tgz",
"integrity": "sha512-arQR1R1ESGdAxY7ZheWr12wCaF2yF47v5qpB76TtV64H1pyGudk9Hvw8Y9tb/FiTIaaTRUyaSnm5T/Y53Ghm/A=="
},
"jsesc": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
@ -21610,6 +21549,12 @@
"resolved": "https://registry.jetlinks.cn/process/-/process-0.11.10.tgz",
"integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="
},
"progress": {
"version": "2.0.3",
"resolved": "http://registry.jetlinks.cn/progress/-/progress-2.0.3.tgz",
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
"dev": true
},
"prop-ini": {
"version": "0.0.2",
"resolved": "https://registry.npmmirror.com/prop-ini/-/prop-ini-0.0.2.tgz",
@ -21708,6 +21653,23 @@
"strip-json-comments": "~2.0.1"
}
},
"rd": {
"version": "2.0.1",
"resolved": "http://registry.jetlinks.cn/rd/-/rd-2.0.1.tgz",
"integrity": "sha512-/XdKU4UazUZTXFmI0dpABt8jSXPWcEyaGdk340KdHnsEOdkTctlX23aAK7ChQDn39YGNlAJr1M5uvaKt4QnpNw==",
"dev": true,
"requires": {
"@types/node": "^10.3.6"
},
"dependencies": {
"@types/node": {
"version": "10.17.60",
"resolved": "http://registry.jetlinks.cn/@types%2fnode/-/node-10.17.60.tgz",
"integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==",
"dev": true
}
}
},
"read-pkg": {
"version": "5.2.0",
"resolved": "https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz",
@ -23016,6 +22978,17 @@
"integrity": "sha512-IvtUqZotrRoVqwT0PBBDIZPNraya3BxN/bfcNfnxZ5rkJiGcNtO5eAOWWSgT7zullIAEqQwxMU83yL9J5k7gww==",
"requires": {}
},
"vite-plugin-progress": {
"version": "0.0.7",
"resolved": "http://registry.jetlinks.cn/vite-plugin-progress/-/vite-plugin-progress-0.0.7.tgz",
"integrity": "sha512-zyvKdcc/X+6hnw3J1HVV1TKrlFKC4Rh8GnDnWG/2qhRXjqytTcM++xZ+SAPnoDsSyWl8O93ymK0wZRgHAoglEQ==",
"dev": true,
"requires": {
"picocolors": "^1.0.0",
"progress": "^2.0.3",
"rd": "^2.0.1"
}
},
"vite-plugin-style-import": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/vite-plugin-style-import/-/vite-plugin-style-import-2.0.0.tgz",
@ -23091,6 +23064,11 @@
"@vue/shared": "3.2.45"
}
},
"vue-cropper": {
"version": "1.0.9",
"resolved": "http://registry.jetlinks.cn/vue-cropper/-/vue-cropper-1.0.9.tgz",
"integrity": "sha512-JhQwxmjqmQohzI7sAp5O/Rfdxuw5HOEYkKjnp/De7iCi6c8Mv6M3N9HpMt9xgWCFchX3/DfXBv2axCZOCg3G8Q=="
},
"vue-demi": {
"version": "0.13.11",
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.13.11.tgz",

View File

@ -25,7 +25,7 @@
"event-source-polyfill": "^1.0.31",
"global": "^4.4.0",
"jetlinks-store": "^0.0.3",
"jetlinks-ui-components": "^1.0.25",
"jetlinks-ui-components": "^1.0.26",
"js-cookie": "^3.0.1",
"jsencrypt": "^3.3.2",
"less": "^4.1.3",

View File

@ -69,6 +69,7 @@
theme="vs"
v-model:modelValue="editorValue"
:registrationTypescript="typescriptTip"
:init="editorInit"
/>
</div>
<div class="bottom">
@ -209,6 +210,30 @@ const result = computed(() =>
: resultValue.value.reason,
);
const editorInit = (editor: any, monaco: any) => {
monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({
noSemanticValidation: true,
noSyntaxValidation: false,
});
// compiler options
monaco.languages.typescript.javascriptDefaults.setCompilerOptions({
allowJs: true,
checkJs: true,
allowNonTsExtensions: true,
target: monaco.languages.typescript.ScriptTarget.ESNext,
strictNullChecks: false,
strictPropertyInitialization: true,
strictFunctionTypes: true,
strictBindCallApply: true,
useDefineForClassFields: true,//permit class static fields with private name to have initializer
moduleResolution: monaco.languages.typescript.ModuleResolutionKind.NodeJs,
module: monaco.languages.typescript.ModuleKind.CommonJS,
typeRoots: ["types"],
lib: ["esnext"]
});
}
//
const rest = async () => {
const res = await delDeviceCode(

View File

@ -26,6 +26,7 @@
theme="vs"
v-model:modelValue="editorValue"
:registrationTypescript="typescriptTip"
:init="editorInit"
/>
</div>
<div class="bottom">
@ -159,6 +160,30 @@ const result = computed(() =>
: resultValue.value.reason,
);
const editorInit = (editor: any, monaco: any) => {
monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({
noSemanticValidation: true,
noSyntaxValidation: false,
});
// compiler options
monaco.languages.typescript.javascriptDefaults.setCompilerOptions({
allowJs: true,
checkJs: true,
allowNonTsExtensions: true,
target: monaco.languages.typescript.ScriptTarget.ESNext,
strictNullChecks: false,
strictPropertyInitialization: true,
strictFunctionTypes: true,
strictBindCallApply: true,
useDefineForClassFields: true,//permit class static fields with private name to have initializer
moduleResolution: monaco.languages.typescript.ModuleResolutionKind.NodeJs,
module: monaco.languages.typescript.ModuleKind.CommonJS,
typeRoots: ["types"],
lib: ["esnext"]
});
}
//topic
const getTopic = async () => {
const res: any = await getProtocal(

421
yarn.lock

File diff suppressed because it is too large Load Diff