fix(webpack): support webworker (#17136) (#17137)

Co-authored-by: Max Sagan - Yieldbroker <max.sagan@yieldbroker.com>
This commit is contained in:
MaximSagan 2023-06-01 00:03:27 +10:00 committed by GitHub
parent 21f642a6f9
commit 825190674c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 14 additions and 14 deletions

View File

@ -43,7 +43,7 @@
"type": "string",
"alias": "platform",
"description": "Target platform for the build, same as the Webpack target option.",
"enum": ["node", "web"],
"enum": ["node", "web", "webworker"],
"default": "web"
},
"deleteOutputPath": {

View File

@ -36,7 +36,7 @@
"target": {
"type": "string",
"description": "Target platform for the build, same as the Webpack config option.",
"enum": ["node", "web"],
"enum": ["node", "web", "webworker"],
"default": "web"
},
"skipFormat": {

View File

@ -20,8 +20,8 @@ export function getWebpackConfig(
): Configuration {
const config: Configuration = {};
const configure =
options.target === 'node'
? withNx()
: composePluginsSync(withNx(), withWeb());
options.target === 'web'
? composePluginsSync(withNx(), withWeb())
: withNx();
return configure(config, { options, context });
}

View File

@ -61,7 +61,7 @@ export interface WebpackExecutorOptions {
runtimeChunk?: boolean;
sourceMap?: boolean | 'hidden';
statsJson?: boolean;
target?: 'node' | 'web';
target?: 'node' | 'web' | 'webworker';
transformers?: TransformerEntry[];
tsConfig: string;
vendorChunk?: boolean;

View File

@ -40,7 +40,7 @@
"type": "string",
"alias": "platform",
"description": "Target platform for the build, same as the Webpack target option.",
"enum": ["node", "web"],
"enum": ["node", "web", "webworker"],
"default": "web"
},
"deleteOutputPath": {

View File

@ -7,7 +7,7 @@ export interface WebpackProjectGeneratorSchema {
skipFormat?: boolean;
skipPackageJson?: boolean;
skipValidation?: boolean;
target?: 'node' | 'web';
target?: 'node' | 'web' | 'webworker';
webpackConfig?: string;
babelConfig?: string;
}

View File

@ -36,7 +36,7 @@
"target": {
"type": "string",
"description": "Target platform for the build, same as the Webpack config option.",
"enum": ["node", "web"],
"enum": ["node", "web", "webworker"],
"default": "web"
},
"skipFormat": {

View File

@ -75,14 +75,14 @@ function addBuildTarget(tree: Tree, options: WebpackProjectGeneratorSchema) {
buildOptions.babelUpwardRootMode = true;
}
if (options.target === 'node') {
if (options.target === 'web') {
tree.write(
joinPathFragments(project.root, 'webpack.config.js'),
`
const { composePlugins, withNx } = require('@nx/webpack');
const { composePlugins, withNx, withWeb } = require('@nx/webpack');
// Nx plugins for webpack.
module.exports = composePlugins(withNx(), (config) => {
module.exports = composePlugins(withNx(), withWeb(), (config) => {
// Update the webpack config as needed here.
// e.g. \`config.plugins.push(new MyPlugin())\`
return config;
@ -93,10 +93,10 @@ module.exports = composePlugins(withNx(), (config) => {
tree.write(
joinPathFragments(project.root, 'webpack.config.js'),
`
const { composePlugins, withNx, withWeb } = require('@nx/webpack');
const { composePlugins, withNx } = require('@nx/webpack');
// Nx plugins for webpack.
module.exports = composePlugins(withNx(), withWeb(), (config) => {
module.exports = composePlugins(withNx(), (config) => {
// Update the webpack config as needed here.
// e.g. \`config.plugins.push(new MyPlugin())\`
return config;