Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
c5c50db
Bring webpack configuration to a valid (but not working) state
Feb 18, 2022
f139c67
webpack build working
Feb 21, 2022
a2c91cb
Remove sourcemap obsolete flag
Feb 21, 2022
3d3352d
Redo ForkTsCheckerWebpackPlugin conf
Feb 21, 2022
5fcacfa
Fix stats type mismatch
Feb 21, 2022
8fb8342
start.js
Feb 22, 2022
b20e694
dev server working but trying to typecheck node_modules
Feb 23, 2022
bdfd0ec
webpack start is working
Feb 23, 2022
8986bd9
Change css minimizer to remove deprecation
Feb 23, 2022
9bd0894
Remove diagnostics
Feb 23, 2022
510fb6b
Update snapshots
Feb 24, 2022
92597a4
Support new version of minimize
Feb 24, 2022
8bf2aea
Add explaining comment
Feb 24, 2022
c6df324
Merge remote-tracking branch 'origin/main' into feature/experiment-we…
Feb 28, 2022
5a340d0
Update yarn.lock
Feb 28, 2022
3122acf
Merge remote-tracking branch 'origin/main' into feature/experiment-we…
Mar 4, 2022
1f7a830
Merge remote-tracking branch 'origin/main' into feature/experiment-we…
Mar 7, 2022
8b1f89b
Merge remote-tracking branch 'origin/main' into feature/experiment-we…
Mar 8, 2022
f075c72
Update snapshots
Mar 8, 2022
7c98350
Update all snapshots
Mar 8, 2022
5f3c001
Update snapshot hash
Mar 8, 2022
7b45909
Add missing quotes
Mar 8, 2022
f97c6f2
Merge branch 'main' into feature/experiment-webpack-5
cristiano-belloni Mar 11, 2022
bc9cb4c
Remove unwanted media dist files
Mar 11, 2022
87964dd
remove tsbuildinfo
Mar 11, 2022
187f866
Merge remote-tracking branch 'origin/main' into feature/experiment-we…
Mar 11, 2022
e1abbef
Make test names decoupled from hashes
Mar 14, 2022
8816b88
Update test snapshots
Mar 14, 2022
e5d772f
Create silver-dolphins-remember.md
cristiano-belloni Mar 16, 2022
51e770e
Enter pre-release mode
Mar 16, 2022
b16fae1
Merge remote-tracking branch 'origin/main' into release/webpack-5
Mar 17, 2022
681ab74
Merge remote-tracking branch 'origin/main' into feature/experiment-we…
Mar 17, 2022
07052ac
Remove requireEnsure
Mar 21, 2022
55df9e0
Merge remote-tracking branch 'origin/main' into feature/experiment-we…
Mar 22, 2022
76ce1bb
Merge remote-tracking branch 'origin/main' into release/webpack-5
Mar 25, 2022
dc846d8
Regenerate pre.json
Mar 25, 2022
43c42b7
remove workflow rule
Mar 25, 2022
bd5e86b
Merge remote-tracking branch 'origin/main' into feature/experiment-we…
Mar 25, 2022
50332fd
Merge remote-tracking branch 'origin/main' into release/webpack-5
Mar 28, 2022
fb7db88
Update pre.json
Mar 28, 2022
5a6dfdc
Merge remote-tracking branch 'origin/main' into feature/experiment-we…
Mar 28, 2022
47e1ec4
Update snapshots
Mar 28, 2022
64f46f7
Update build snapshots
Mar 28, 2022
41ded67
Update browser versions
Mar 28, 2022
b2ca58b
Merge pull request #1421 from jpmorganchase/feature/experiment-webpack-5
cristiano-belloni Mar 29, 2022
8cfe64f
Version Packages (alpha-webpack5)
github-actions[bot] Mar 29, 2022
d8562e6
Merge pull request #1521 from jpmorganchase/changeset-release/release…
cristiano-belloni Mar 29, 2022
4f1af82
Revert "Revert engine range (#1518)"
Apr 5, 2022
d2aacf6
Revert "fix node-12 incompatible javascript (#1517)"
Apr 5, 2022
d2b10e9
Remove node 12 support
Apr 5, 2022
69da976
Add changeset
Apr 5, 2022
c40158b
Add node 18 in CI
Apr 5, 2022
074bff4
Revert "Add node 18 in CI"
Apr 5, 2022
4baca0a
Hardcode node to v14
Apr 6, 2022
9f48679
support node 16 explicitly and run test workflow against target node …
LukeSheard Apr 6, 2022
8115519
fix node versions so that tests run
LukeSheard Apr 6, 2022
8b3f1f5
Create dirty-mugs-double.md
LukeSheard Apr 6, 2022
8901b9f
fix node versions so that tests run and remove 15 since it's unsupported
LukeSheard Apr 6, 2022
0a0bc65
Merge remote-tracking branch 'origin/bugfix/workflow-node-version' in…
Apr 7, 2022
4abf766
Raise version to be compatible with eslint
Apr 7, 2022
4f9cba9
Version Packages (alpha-webpack5)
github-actions[bot] Apr 7, 2022
a31fb3f
Merge pull request #1554 from jpmorganchase/changeset-release/release…
cristiano-belloni Apr 8, 2022
3225a24
Update snapshots
Apr 26, 2022
401328d
Merge branch 'main' into release/v3-main
LukeSheard Apr 28, 2022
0950b59
Merge branch 'main' into feature/webpack-5
LukeSheard Apr 28, 2022
dd6b579
Remove alpha release artifacts
LukeSheard Apr 28, 2022
a29d5d5
Update snapshots
LukeSheard Apr 28, 2022
1eac1a6
Update snapshots
LukeSheard Apr 28, 2022
fa66c73
Update snapshot
LukeSheard Apr 28, 2022
7e79670
Merge branch 'main' into feature/webpack-5
LukeSheard Apr 28, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/silver-dolphins-remember.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"modular-scripts": major
---

Upgrade webpack implementation to use webpack 5 + associated loader / plugin dependencies.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@
},
"jest": {
"coveragePathIgnorePatterns": [
"/__fixtures__/",
"/node_modules/",
"/modular-site/",
"/modular-views.macro/"
Expand Down
28 changes: 14 additions & 14 deletions packages/modular-scripts/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@
"change-case": "4.1.2",
"commander": "9.2.0",
"cross-spawn": "7.0.3",
"css-loader": "4.3.0",
"css-loader": "6.6.0",
"css-minimizer-webpack-plugin": "3.4.1",
"dedent": "0.7.0",
"detect-port-alt": "1.1.6",
"dotenv": "16.0.0",
Expand All @@ -56,12 +57,12 @@
"file-loader": "6.2.0",
"filesize": "8.0.3",
"find-up": "5.0.0",
"fork-ts-checker-webpack-plugin": "4.1.6",
"fork-ts-checker-webpack-plugin": "6.5.0",
"fs-extra": "10.1.0",
"global-modules": "2.0.0",
"globby": "11.0.4",
"gzip-size": "6.0.0",
"html-webpack-plugin": "4.5.2",
"html-webpack-plugin": "5.5.0",
"html-minifier-terser": "6.1.0",
"is-ci": "2.0.0",
"is-root": "2.1.0",
Expand All @@ -73,19 +74,18 @@
"jest-transform-stub": "2.0.0",
"jest-watch-typeahead": "0.6.5",
"js-yaml": "^4.1.0",
"loader-utils": "2.0.0",
"loader-utils": "3.2.0",
"micromatch": "4.0.5",
"mime": "^3.0.0",
"mini-css-extract-plugin": "0.11.3",
"mini-css-extract-plugin": "2.5.3",
"npm-packlist": "5.0.0",
"open": "8.3.0",
"optimize-css-assets-webpack-plugin": "6.0.1",
"parse5": "6.0.1",
"pkg-up": "3.1.0",
"pnp-webpack-plugin": "1.6.4",
"pnp-webpack-plugin": "1.7.0",
"postcss": "8.4.12",
"postcss-flexbugs-fixes": "4.2.1",
"postcss-loader": "4.2.0",
"postcss-loader": "6.2.1",
"postcss-normalize": "8.0.1",
"postcss-preset-env": "7.4.3",
"postcss-safe-parser": "5.0.2",
Expand All @@ -95,27 +95,27 @@
"react-refresh": "0.8.3",
"recursive-readdir": "2.2.2",
"resolve": "1.21.0",
"resolve-url-loader": "5.0.0-beta.1",
"resolve-url-loader": "5.0.0",
"rimraf": "3.0.2",
"rollup": "2.70.2",
"rollup-plugin-esbuild": "^4.9.1",
"rollup-plugin-postcss": "4.0.2",
"sass-loader": "10.0.5",
"sass-loader": "12.6.0",
"semver": "7.3.7",
"semver-regex": "3.1.3",
"shell-quote": "1.7.3",
"source-map-support": "0.5.21",
"strip-ansi": "6.0.0",
"style-loader": "1.3.0",
"terser-webpack-plugin": "4.2.3",
"style-loader": "3.3.1",
"terser-webpack-plugin": "5.3.1",
"tmp": "^0.2.1",
"ts-jest": "26.5.6",
"ts-morph": "^14.0.0",
"update-notifier": "5.1.0",
"url-loader": "4.1.1",
"webpack": "4.46.0",
"webpack": "5.69.1",
"webpack-dev-server": "4.8.1",
"webpack-manifest-plugin": "2.2.0",
"webpack-manifest-plugin": "4.1.1",
"ws": "8.5.0"
},
"peerDependencies": {
Expand Down
79 changes: 8 additions & 71 deletions packages/modular-scripts/react-dev-utils/WebpackDevServerUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ const forkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
const { clearConsole } = require('./logger');
const formatWebpackMessages = require('./formatWebpackMessages');
const getProcessForPort = require('./getProcessForPort');
const typescriptFormatter = require('./typescriptFormatter');
const console = require('./logger');

const isInteractive = process.stdout.isTTY;
Expand Down Expand Up @@ -94,15 +93,7 @@ function printInstructions(appName, urls) {
console.log();
}

function createCompiler({
appName,
config,
devSocket,
urls,
useTypeScript,
tscCompileOnError,
webpack,
}) {
function createCompiler({ appName, config, urls, useTypeScript, webpack }) {
// "Compiler" is a low-level interface to webpack.
// It lets us listen to some events and provide our own custom messages.
let compiler;
Expand All @@ -129,28 +120,16 @@ function createCompiler({

let isFirstCompile = true;
let tsMessagesPromise;
let tsMessagesResolver;

if (useTypeScript) {
compiler.hooks.beforeCompile.tap('beforeCompile', () => {
tsMessagesPromise = new Promise((resolve) => {
tsMessagesResolver = (msgs) => resolve(msgs);
});
});

forkTsCheckerWebpackPlugin
.getCompilerHooks(compiler)
.receive.tap('afterTypeScriptCheck', (diagnostics, lints) => {
const allMsgs = [...diagnostics, ...lints];
const format = (message) =>
`${message.file}\n${typescriptFormatter(message, true)}`;

tsMessagesResolver({
errors: allMsgs.filter((msg) => msg.severity === 'error').map(format),
warnings: allMsgs
.filter((msg) => msg.severity === 'warning')
.map(format),
});
.waiting.tap('awaitingTypeScriptCheck', () => {
console.log(
chalk.yellow(
'Files successfully emitted, waiting for typecheck results...',
),
);
});
}

Expand All @@ -172,48 +151,6 @@ function createCompiler({
errors: true,
});

if (useTypeScript && statsData.errors.length === 0) {
const delayedMsg = setTimeout(() => {
console.log(
chalk.yellow(
'Files successfully emitted, waiting for typecheck results...',
),
);
}, 100);

const messages = await tsMessagesPromise;
clearTimeout(delayedMsg);
if (tscCompileOnError) {
statsData.warnings.push(...messages.errors);
} else {
statsData.errors.push(...messages.errors);
}
statsData.warnings.push(...messages.warnings);

// Push errors and warnings into compilation result
// to show them after page refresh triggered by user.
if (tscCompileOnError) {
stats.compilation.warnings.push(...messages.errors);
} else {
stats.compilation.errors.push(...messages.errors);
}
stats.compilation.warnings.push(...messages.warnings);

if (messages.errors.length > 0) {
if (tscCompileOnError) {
devSocket.warnings(messages.errors);
} else {
devSocket.errors(messages.errors);
}
} else if (messages.warnings.length > 0) {
devSocket.warnings(messages.warnings);
}

if (isInteractive) {
clearConsole();
}
}

const messages = formatWebpackMessages(statsData);
const isSuccessful = !messages.errors.length && !messages.warnings.length;
if (isSuccessful) {
Expand Down Expand Up @@ -371,7 +308,7 @@ function prepareProxy(proxy, appPublicFolder, servedPathname) {
// If proxy is specified, let it handle any request except for
// files in the public folder and requests to the WebpackDevServer socket endpoint.
// https://github.com/facebook/create-react-app/issues/6720
const sockPath = process.env.WDS_SOCKET_PATH || '/sockjs-node';
const sockPath = process.env.WDS_SOCKET_PATH || '/ws';
const isDefaultSockHost = !process.env.WDS_SOCKET_HOST;
function mayProxy(pathname) {
const maybePublicPath = path.resolve(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ function base64SourceMap(source) {
}

function getSourceById(server, id) {
const module = server._stats.compilation.modules.find((m) => m.id === id);
const module = Array.from(server._stats.compilation.modules).find(
(m) => server._stats.compilation.chunkGraph.getModuleId(m) === id,
);
return module.originalSource();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,13 @@ function isLikelyASyntaxError(message) {

// Cleans up webpack error messages.
function formatMessage(message) {
let lines = message.split('\n');
let lines = [];

if (typeof message === 'string' || message instanceof String) {
lines = message.split('\n');
} else if ('message' in message) {
lines = message['message'].split('\n');
}

// Strip webpack-added headers off errors/warnings
// https://github.com/webpack/webpack/blob/master/lib/ModuleError.js
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ var connection = new WebSocket(
hostname: process.env.WDS_SOCKET_HOST || window.location.hostname,
port: process.env.WDS_SOCKET_PORT || window.location.port,
// Hardcoded in WebpackDevServer
pathname: process.env.WDS_SOCKET_PATH || '/sockjs-node',
pathname: process.env.WDS_SOCKET_PATH || '/ws',
slashes: true,
}),
);
Expand Down
Loading