Parcourir la source

[ui-core] Upgrade babel and webpack to the latest versions

A couple of syntax proposal plugins has been removed as they've been accepted and are now part of Babel preset env.
Johan Åhlén il y a 1 an
Parent
commit
1e666bedb7
7 fichiers modifiés avec 297 ajouts et 591 suppressions
  1. 8 18
      babel.config.js
  2. 244 534
      package-lock.json
  3. 17 21
      package.json
  4. 6 2
      webpack.config.js
  5. 6 4
      webpack.config.login.js
  6. 10 8
      webpack.config.npm.js
  7. 6 4
      webpack.config.workers.js

+ 8 - 18
babel.config.js

@@ -21,7 +21,12 @@ module.exports = function (api) {
   api.cache(true);
   api.assertVersion('^7.4.5');
 
-  const presets = ['babel-preset-typescript-vue3', '@babel/typescript', '@babel/preset-env', '@babel/preset-react'];
+  const presets = [
+    'babel-preset-typescript-vue3',
+    '@babel/typescript',
+    '@babel/preset-env',
+    '@babel/preset-react'
+  ];
   const plugins = [
     [
       'module-resolver',
@@ -29,21 +34,7 @@ module.exports = function (api) {
         root: ['./desktop/core/src/desktop/js']
       }
     ],
-    '@babel/plugin-syntax-dynamic-import',
-    [
-      '@babel/plugin-proposal-decorators',
-      {
-        legacy: true
-      }
-    ],
-    [
-      '@babel/proposal-class-properties',
-      {
-        loose: true
-      }
-    ],
-    ['@babel/plugin-proposal-private-methods', { loose: true }],
-    '@babel/proposal-object-rest-spread'
+    ['@babel/plugin-proposal-decorators', { version: '2023-11' }]
   ];
 
   const overrides = [
@@ -65,8 +56,7 @@ module.exports = function (api) {
           {
             root: ['./desktop/core/src/desktop/js']
           }
-        ],
-        '@babel/plugin-syntax-dynamic-import'
+        ]
       ]
     }
   };

Fichier diff supprimé car celui-ci est trop grand
+ 244 - 534
package-lock.json


+ 17 - 21
package.json

@@ -80,17 +80,14 @@
     "vue3-datepicker": "0.2.5"
   },
   "devDependencies": {
-    "@babel/cli": "7.18.10",
-    "@babel/core": "7.14.3",
-    "@babel/eslint-parser": "7.16.3",
-    "@babel/node": "7.14.2",
-    "@babel/plugin-proposal-class-properties": "7.13.0",
-    "@babel/plugin-proposal-decorators": "7.13.0",
-    "@babel/plugin-proposal-object-rest-spread": "7.13.0",
-    "@babel/plugin-syntax-dynamic-import": "7.8.3",
-    "@babel/preset-env": "7.14.4",
-    "@babel/preset-react": "7.17.12",
-    "@babel/preset-typescript": "7.13.0",
+    "@babel/cli": "7.24.8",
+    "@babel/core": "7.24.8",
+    "@babel/eslint-parser": "7.24.8",
+    "@babel/node": "7.24.8",
+    "@babel/plugin-proposal-decorators": "7.24.7",
+    "@babel/preset-env": "7.24.8",
+    "@babel/preset-react": "7.24.7",
+    "@babel/preset-typescript": "7.24.7",
     "@testing-library/jest-dom": "6.4.6",
     "@testing-library/react": "16.0.0",
     "@testing-library/user-event": "14.5.2",
@@ -112,12 +109,11 @@
     "@vue/test-utils": "2.4.6",
     "@vue/vue3-jest": "29.2.6",
     "babel-jest": "29.7.0",
-    "babel-loader": "8.2.2",
-    "babel-plugin-module-resolver": "5.0.0",
-    "babel-preset-react-app": "10.0.1",
-    "babel-preset-typescript-vue3": "2.0.12",
-    "clean-webpack-plugin": "1.0.1",
-    "copy-webpack-plugin": "6.4.1",
+    "babel-loader": "9.1.3",
+    "babel-plugin-module-resolver": "5.0.2",
+    "babel-preset-typescript-vue3": "2.0.17",
+    "clean-webpack-plugin": "4.0.0",
+    "copy-webpack-plugin": "12.0.2",
     "css-loader": "5.2.6",
     "eslint": "7.27.0",
     "eslint-config-prettier": "8.3.0",
@@ -155,10 +151,10 @@
     "util": "0.12.4",
     "vti": "0.0.24",
     "vue-loader": "16.5.0",
-    "webpack": "5.76.0",
-    "webpack-bundle-analyzer": "4.4.2",
-    "webpack-bundle-tracker": "1.0.0",
-    "webpack-cli": "4.7.0"
+    "webpack": "5.93.0",
+    "webpack-bundle-analyzer": "4.10.2",
+    "webpack-bundle-tracker": "3.1.0",
+    "webpack-cli": "5.1.4"
   },
   "scripts": {
     "devinstall": "npm cache clean && npm install && npm prune",

+ 6 - 2
webpack.config.js

@@ -16,7 +16,7 @@
 
 const fs = require('fs');
 const webpack = require('webpack');
-const CleanWebpackPlugin = require('clean-webpack-plugin');
+const { CleanWebpackPlugin } = require('clean-webpack-plugin');
 const {
   BUNDLES,
   getPluginConfig,
@@ -133,7 +133,11 @@ const config = {
     maxAssetSize: 400 * 1024 // 400kb
   },
   plugins: getPluginConfig(BUNDLES.HUE).concat([
-    new CleanWebpackPlugin([`${__dirname}/desktop/core/src/desktop/static/desktop/js/bundles/hue`])
+    new CleanWebpackPlugin({
+      cleanOnceBeforeBuildPatterns: [
+        `${__dirname}/desktop/core/src/desktop/static/desktop/js/bundles/hue`
+      ]
+    })
   ]),
   resolve: {
     extensions: ['.json', '.jsx', '.js', '.tsx', '.ts', '.vue'],

+ 6 - 4
webpack.config.login.js

@@ -14,7 +14,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-const CleanWebpackPlugin = require('clean-webpack-plugin');
+const { CleanWebpackPlugin } = require('clean-webpack-plugin');
 const {
   BUNDLES,
   getPluginConfig,
@@ -42,9 +42,11 @@ module.exports = {
     filename: shared.output.filename
   },
   plugins: getPluginConfig(BUNDLES.LOGIN).concat([
-    new CleanWebpackPlugin([
-      `${__dirname}/desktop/core/src/desktop/static/desktop/js/bundles/login`
-    ])
+    new CleanWebpackPlugin({
+      cleanOnceBeforeBuildPatterns: [
+        `${__dirname}/desktop/core/src/desktop/static/desktop/js/bundles/login`
+      ]
+    })
   ]),
   resolve: shared.resolve
 };

+ 10 - 8
webpack.config.npm.js

@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-const CleanWebpackPlugin = require('clean-webpack-plugin');
+const { CleanWebpackPlugin } = require('clean-webpack-plugin');
 const CopyWebpackPlugin = require('copy-webpack-plugin');
 const path = require('path');
 const fs = require('fs');
@@ -61,27 +61,27 @@ const copySourceConfig = {
     usedExports: true
   },
   plugins: [
-    new CleanWebpackPlugin([DIST_DIR]),
+    new CleanWebpackPlugin({ cleanOnceBeforeBuildPatterns: [DIST_DIR] }),
     new CopyWebpackPlugin({
       patterns: [
         { from: './NPM-README.md', to: `${DIST_DIR}/README.md` },
         {
           from: './package.json',
           to: `${DIST_DIR}/package.json`,
-          transform: (content) => {
+          transform: content => {
             // Remove local dependencies (currently only cuix) since it is not needed
             // and cannot be accessed by the npm registry.
-            const contentStr = content.toString();      
+            const contentStr = content.toString();
             const contentObj = JSON.parse(contentStr);
 
             // Iterate over the dependencies and remove local references
-            Object.keys(contentObj.dependencies || {}).forEach((key) => {
+            Object.keys(contentObj.dependencies || {}).forEach(key => {
               const value = contentObj.dependencies[key];
-              if (value.startsWith("file:")) {
+              if (value.startsWith('file:')) {
                 delete contentObj.dependencies[key];
               }
             });
-            
+
             return JSON.stringify(contentObj, null, 2);
           }
         },
@@ -195,7 +195,9 @@ const vue3WebCompWrapperConfig = Object.assign({}, defaultConfig, {
     globalObject: `(typeof self !== 'undefined' ? self : this)`
   },
   plugins: [
-    new CleanWebpackPlugin([`${WRAPPER_DIR}/src`, `${WRAPPER_DIR}/dist`]),
+    new CleanWebpackPlugin({
+      cleanOnceBeforeBuildPatterns: [`${WRAPPER_DIR}/src`, `${WRAPPER_DIR}/dist`]
+    }),
     new CopyWebpackPlugin({
       patterns: [{ from: `${JS_ROOT}/vue/wrapper/`, to: `${WRAPPER_DIR}/src` }]
     })

+ 6 - 4
webpack.config.workers.js

@@ -14,7 +14,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-const CleanWebpackPlugin = require('clean-webpack-plugin');
+const { CleanWebpackPlugin } = require('clean-webpack-plugin');
 const {
   BUNDLES,
   getPluginConfig,
@@ -47,8 +47,10 @@ module.exports = {
   },
   module: shared.module,
   plugins: getPluginConfig(BUNDLES.WORKERS).concat([
-    new CleanWebpackPlugin([
-      `${__dirname}/desktop/core/src/desktop/static/desktop/js/bundles/workers`
-    ])
+    new CleanWebpackPlugin({
+      cleanOnceBeforeBuildPatterns: [
+        `${__dirname}/desktop/core/src/desktop/static/desktop/js/bundles/workers`
+      ]
+    })
   ])
 };

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff