From e461a04f27ef39277cb4dc5c4d73a97047f385cb Mon Sep 17 00:00:00 2001 From: Vidar Tonaas Fauske Date: Wed, 12 Apr 2023 01:58:28 +0100 Subject: [PATCH] Update dev tooling node 18, webpack 5, etc. --- .github/workflows/tests.yml | 4 ++-- appveyor.yml | 2 +- package.json | 2 +- packages/labextension/package.json | 12 ++++++------ packages/nbdime/jest.config.js | 3 ++- packages/nbdime/package.json | 15 ++++++++------- packages/nbdime/test/jest-setup-files.js | 1 + packages/webapp/package.json | 23 +++++++++++------------ packages/webapp/webpack.config.js | 12 ++++++------ 9 files changed, 38 insertions(+), 36 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d82c0607..0961bd0c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -50,10 +50,10 @@ jobs: python -m pip install jupyterlab~=3.0 npm install -g codecov - - name: Use Node.js 14.x + - name: Use Node.js 18.x uses: actions/setup-node@v1 with: - node-version: 14.x + node-version: 18.x - name: Get npm cache directory id: npm-cache-dir run: | diff --git a/appveyor.yml b/appveyor.yml index 741f1589..72f2af8d 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -3,7 +3,7 @@ skip_branch_with_pr: true # environment variables environment: - nodejs_version: "14" + nodejs_version: "18" matrix: - PYTHON: "C:\\Python37-x64" PYTHON_VERSION: "3.7.x" diff --git a/package.json b/package.json index 311c84b1..12b27056 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,6 @@ "devDependencies": { "@jupyterlab/buildutils": "^3.0.0", "lerna": "^4.0.0", - "rimraf": "^2.6.3" + "rimraf": "^5.0.0" } } diff --git a/packages/labextension/package.json b/packages/labextension/package.json index bcff799e..f699f3a6 100644 --- a/packages/labextension/package.json +++ b/packages/labextension/package.json @@ -18,6 +18,8 @@ }, "license": "BSD-3-Clause", "author": "Project Jupyter", + "main": "lib/index.js", + "typings": "lib/index.d.ts", "files": [ "lib/*.js", "lib/*.js.map", @@ -25,18 +27,16 @@ "style/*.css", "schema/*.json" ], - "main": "lib/index.js", - "typings": "lib/index.d.ts", "scripts": { "build": "npm run build:lib && npm run build:labextension", "build:dev": "npm run build:lib && jupyter labextension build --development True .", "build:labextension": "npm run build:labextension:source && npm run build:labextension:prebuilt", - "build:labextension:source": "rimraf dist && mkdirp dist && cd dist && npm pack ..", "build:labextension:prebuilt": "rimraf ../../nbdime/labextension && mkdirp ../../nbdime/labextension && jupyter labextension build .", + "build:labextension:source": "rimraf dist && mkdirp dist && cd dist && npm pack ..", "build:lib": "tsc --build", "clean": "npm run clean:lib && npm run clean:labextension", - "clean:lib": "rimraf tsconfig.tsbuildinfo lib", "clean:labextension": "rimraf ../../nbdime/labextension", + "clean:lib": "rimraf tsconfig.tsbuildinfo lib", "prepublishOnly": "npm run build", "update": "rimraf node_modules/nbdime && npm install && npm run build", "watch": "tsc --build --watch" @@ -60,8 +60,8 @@ "@jupyterlab/builder": "^3.0.0", "@jupyterlab/docregistry": "^2 || ^3", "@lumino/commands": "^1.6.1", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.3", + "mkdirp": "^3.0.0", + "rimraf": "^5.0.0", "typescript": "^4.9.0" }, "jupyterlab": { diff --git a/packages/nbdime/jest.config.js b/packages/nbdime/jest.config.js index bab35049..3668202b 100644 --- a/packages/nbdime/jest.config.js +++ b/packages/nbdime/jest.config.js @@ -6,6 +6,7 @@ tsOptions["rootDir"] = null; tsOptions["inlineSourceMap"] = true; module.exports = { + testEnvironment: 'jsdom', automock: false, moduleNameMapper: { '\\.(css|less|sass|scss)$': 'identity-obj-proxy', @@ -16,7 +17,7 @@ module.exports = { setupFiles: ['/test/jest-setup-files.js'], testPathIgnorePatterns: ['/lib/', '/node_modules/'], testRegex: '/test/src/.*.spec.ts$', - transformIgnorePatterns: ['/node_modules/(?!((@jupyterlab|y-protocols|@jupyter/ydoc|lib0)/.*))'], + transformIgnorePatterns: ['/node_modules/(?!((@jupyterlab|y-protocols|yjs|@jupyter/ydoc|lib0)/.*))'], globals: { 'ts-jest': { tsconfig: tsOptions diff --git a/packages/nbdime/package.json b/packages/nbdime/package.json index 500916b0..b2994829 100644 --- a/packages/nbdime/package.json +++ b/packages/nbdime/package.json @@ -38,16 +38,17 @@ "@babel/preset-env": "^7.5.0", "@jupyterlab/apputils": "^2 || ^3", "@lumino/messaging": "^1.2.2", + "@types/jest": "^29.5.0", "@types/json-stable-stringify": "^1.0.32", - "@types/jest": "^26.0.0", - "@types/node": "^14.14.13", + "@types/node": "^18.15.0", "@types/sanitizer": "^0.0.28", - "fs-extra": "^8.1.0", + "fs-extra": "^11.1.1", "identity-obj-proxy": "^3.0.0", - "jest": "^26.0.0", - "jest-fetch-mock": "^1.6.6", - "ts-jest": "^26.0.0", - "rimraf": "^2.6.3", + "jest": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", + "jest-fetch-mock": "^3.0.3", + "rimraf": "^5.0.0", + "ts-jest": "^29.1.0", "typescript": "^4.9.0" }, "peerDependencies": { diff --git a/packages/nbdime/test/jest-setup-files.js b/packages/nbdime/test/jest-setup-files.js index c158ca42..9ddcf3ba 100644 --- a/packages/nbdime/test/jest-setup-files.js +++ b/packages/nbdime/test/jest-setup-files.js @@ -1 +1,2 @@ global.fetch = require('jest-fetch-mock'); +global.crypto = require('crypto'); diff --git a/packages/webapp/package.json b/packages/webapp/package.json index 48d4c8ab..0739bcc0 100644 --- a/packages/webapp/package.json +++ b/packages/webapp/package.json @@ -4,8 +4,8 @@ "license": "BSD-3-Clause", "main": "static/nbdime.js", "scripts": { - "build": "webpack -p", - "build:dev": "webpack -d", + "build": "webpack --mode=production", + "build:dev": "webpack --mode=development", "clean": "rimraf build && rimraf ../../nbdime/webapp/static", "profile": "webpack --profile --json > webpack-stats.json", "watch": "webpack --watch" @@ -31,18 +31,17 @@ "devDependencies": { "@types/file-saver": "^2.0.0", "@types/json-stable-stringify": "^1.0.32", - "@types/node": "^14.14.13", + "@types/node": "^18.15.0", "@types/sanitizer": "^0.0.28", - "css-loader": "^3.0.0", - "file-loader": "^4.0.0", - "rimraf": "^2.6.3", - "source-map-loader": "^0.2.4", - "style-loader": "^0.23.1", - "ts-loader": "^8.2.0", + "css-loader": "^6.7.3", + "file-loader": "^6.2.0", + "rimraf": "^5.0.0", + "source-map-loader": "^4.0.1", + "style-loader": "^3.3.2", + "ts-loader": "^9.4.2", "typescript": "^4.9.0", - "url-loader": "^2.0.1", - "webpack": "^4.29.6", - "webpack-cli": "^3.2.3" + "webpack": "^5.78.0", + "webpack-cli": "^5.0.1" }, "peerDependencies": { "codemirror": "^5.0.0" diff --git a/packages/webapp/webpack.config.js b/packages/webapp/webpack.config.js index 2fdd8e91..1615af22 100644 --- a/packages/webapp/webpack.config.js +++ b/packages/webapp/webpack.config.js @@ -17,13 +17,13 @@ module.exports = { { test: /\.js$/, loader: "source-map-loader" }, { test: /\.html$/, loader: 'file-loader' }, // jquery-ui loads some images - { test: /\.(jpg|png|gif)$/, loader: 'file-loader' }, + { test: /\.(jpg|png|gif)$/, type: 'asset/resource' }, // required to load font-awesome - { test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, loader: 'url-loader?limit=10000&mimetype=application/font-woff' }, - { test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, loader: 'url-loader?limit=10000&mimetype=application/font-woff' }, - { test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: 'url-loader?limit=10000&mimetype=application/octet-stream' }, - { test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: 'file-loader' }, - { test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: 'url-loader?limit=10000&mimetype=image/svg+xml' } + { test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, type: 'asset' }, + { test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, type: 'asset' }, + { test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, type: 'asset' }, + { test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, type: 'asset/resource' }, + { test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, type: 'asset' } ], }, resolve: {