From 84f46419310998fbfbf9a8ef65813730d39ae7ed Mon Sep 17 00:00:00 2001 From: Sean Gregory Date: Thu, 28 Apr 2022 14:46:54 -0400 Subject: [PATCH 1/2] Draft - Introducting Webpack 5 (work in progress) This MR introduces webpack 5 in package.json and changes * webpack.config.js to reflect the new api --- .gitignore | 1 + .gitlab/ci/frontend.gitlab-ci.yml | 1 - .../extensions/source_editor_webide_ext.js | 2 +- app/assets/javascripts/editor/utils.js | 3 +- .../ide/components/repo_editor.vue | 1 - app/assets/javascripts/ide/utils.js | 4 +- app/assets/javascripts/pdf/index.vue | 2 +- .../incremental_webpack_compiler/compiler.js | 4 +- .../graphql_known_operations_plugin.js | 18 +- config/webpack.config.js | 1271 +-- config/webpack.vendor.config.js | 10 +- lib/gitlab/webpack/manifest.rb | 4 +- package.json | 151 +- .../graphql_possible_types_extraction.js | 2 +- yarn.lock | 7812 +++++++++-------- 15 files changed, 4859 insertions(+), 4427 deletions(-) diff --git a/.gitignore b/.gitignore index bdd3ac98876e22..bf209d9c7ac0ac 100644 --- a/.gitignore +++ b/.gitignore @@ -47,6 +47,7 @@ eslint-report.html /config/secrets.yml /config/sidekiq.yml /config/registry.key +/config/.webpack-cache/ /coverage/* /db/*.sqlite3 /db/*.sqlite3-journal diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml index a45db09b60270e..25a348ba7daaa6 100644 --- a/.gitlab/ci/frontend.gitlab-ci.yml +++ b/.gitlab/ci/frontend.gitlab-ci.yml @@ -10,7 +10,6 @@ extends: - .default-retry - .default-before_script - - .assets-compile-cache image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}-node-16.14:rubygems-3.2-git-2.33-lfs-2.9-yarn-1.22-graphicsmagick-1.3.36 variables: SETUP_DB: "false" diff --git a/app/assets/javascripts/editor/extensions/source_editor_webide_ext.js b/app/assets/javascripts/editor/extensions/source_editor_webide_ext.js index 6270517b3f3ca9..bacc05af3f1402 100644 --- a/app/assets/javascripts/editor/extensions/source_editor_webide_ext.js +++ b/app/assets/javascripts/editor/extensions/source_editor_webide_ext.js @@ -60,7 +60,7 @@ const renderSideBySide = (domElement) => { const updateDiffInstanceRendering = (instance) => { instance.updateOptions({ - renderSideBySide: renderSideBySide(instance.getDomNode()), + renderSideBySide: renderSideBySide(instance.getContainerDomNode()), }); }; diff --git a/app/assets/javascripts/editor/utils.js b/app/assets/javascripts/editor/utils.js index df9d3f2b9fb9d8..d290119fd377fa 100644 --- a/app/assets/javascripts/editor/utils.js +++ b/app/assets/javascripts/editor/utils.js @@ -26,7 +26,8 @@ export const getBlobLanguage = (blobPath) => { const ext = `.${blobPath.split('.').pop()}`; const language = monacoLanguages .getLanguages() - .find((lang) => lang.extensions.indexOf(ext) !== -1); + // extensions is optional: https://microsoft.github.io/monaco-editor/api/interfaces/monaco.languages.ILanguageExtensionPoint.html#extensions + .find((lang) => lang.extensions && lang.extensions.indexOf(ext) !== -1); return language ? language.id : defaultLanguage; }; diff --git a/app/assets/javascripts/ide/components/repo_editor.vue b/app/assets/javascripts/ide/components/repo_editor.vue index a1396995a3b5e5..fb7fef0af4d804 100644 --- a/app/assets/javascripts/ide/components/repo_editor.vue +++ b/app/assets/javascripts/ide/components/repo_editor.vue @@ -354,7 +354,6 @@ export default { } this.isEditorLoading = false; - this.model.updateOptions(this.rules); this.model.onChange((model) => { diff --git a/app/assets/javascripts/ide/utils.js b/app/assets/javascripts/ide/utils.js index a7e6506b045450..6cc95effcc36f2 100644 --- a/app/assets/javascripts/ide/utils.js +++ b/app/assets/javascripts/ide/utils.js @@ -1,5 +1,6 @@ import { flatten, isString } from 'lodash'; import { languages } from 'monaco-editor'; +import { yamlDefaults } from 'monaco-yaml'; import { performanceMarkAndMeasure } from '~/performance/utils'; import { SIDE_LEFT, SIDE_RIGHT } from './constants'; @@ -82,7 +83,8 @@ export function registerLanguages(def, ...defs) { } export function registerSchema(schema, options = {}) { - const defaults = [languages.json.jsonDefaults, languages.yaml.yamlDefaults]; + // yamlDefaults is now an export -- see https://github.com/remcohaszing/monaco-yaml/pull/172 + const defaults = [languages.json.jsonDefaults, yamlDefaults]; defaults.forEach((d) => d.setDiagnosticsOptions({ validate: true, diff --git a/app/assets/javascripts/pdf/index.vue b/app/assets/javascripts/pdf/index.vue index 644eccc0232588..ca172984d3840d 100644 --- a/app/assets/javascripts/pdf/index.vue +++ b/app/assets/javascripts/pdf/index.vue @@ -1,5 +1,5 @@