@teambit/webpack 0.0.1051 → 0.0.1053
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{preview-1683603493223.js → preview-1683776045298.js} +2 -2
- package/dist/webpack.main.runtime.d.ts +3 -2
- package/dist/webpack.main.runtime.js +15 -4
- package/dist/webpack.main.runtime.js.map +1 -1
- package/package-tar/teambit-webpack-0.0.1053.tgz +0 -0
- package/package.json +8 -8
- package/package-tar/teambit-webpack-0.0.1051.tgz +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.webpack_webpack@0.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.webpack_webpack@0.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.webpack_webpack@0.0.1053/dist/webpack.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.webpack_webpack@0.0.1053/dist/webpack.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
|
@@ -62,11 +62,12 @@ export declare class WebpackMain {
|
|
|
62
62
|
/**
|
|
63
63
|
* create an instance of bit-compliant webpack dev server for a set of components
|
|
64
64
|
*/
|
|
65
|
-
createDevServer(context: DevServerContext, transformers?: WebpackConfigTransformer[]): DevServer;
|
|
65
|
+
createDevServer(context: DevServerContext, transformers?: WebpackConfigTransformer[], webpackModulePath?: string, webpackDevServerModulePath?: string): DevServer;
|
|
66
66
|
mergeConfig(target: any, source: any): any;
|
|
67
|
-
createBundler(context: BundlerContext, transformers?: WebpackConfigTransformer[], initialConfigs?: webpack.Configuration[],
|
|
67
|
+
createBundler(context: BundlerContext, transformers?: WebpackConfigTransformer[], initialConfigs?: webpack.Configuration[], webpackModuleOrPath?: string | any): WebpackBundler;
|
|
68
68
|
private createConfigs;
|
|
69
69
|
private generateTransformers;
|
|
70
|
+
private getWebpackInstance;
|
|
70
71
|
private createDevServerConfig;
|
|
71
72
|
static slots: never[];
|
|
72
73
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
|
@@ -140,8 +140,9 @@ class WebpackMain {
|
|
|
140
140
|
/**
|
|
141
141
|
* create an instance of bit-compliant webpack dev server for a set of components
|
|
142
142
|
*/
|
|
143
|
-
createDevServer(context, transformers = []) {
|
|
143
|
+
createDevServer(context, transformers = [], webpackModulePath, webpackDevServerModulePath) {
|
|
144
144
|
const config = this.createDevServerConfig(context.entry, this.workspace.path, context.id, context.rootPath, context.publicPath, context.title);
|
|
145
|
+
const wdsPath = webpackDevServerModulePath || require.resolve('webpack-dev-server');
|
|
145
146
|
const configMutator = new (_webpackModules().WebpackConfigMutator)(config);
|
|
146
147
|
const transformerContext = Object.assign(context, {
|
|
147
148
|
mode: 'dev'
|
|
@@ -149,12 +150,12 @@ class WebpackMain {
|
|
|
149
150
|
const internalTransformers = this.generateTransformers(undefined, transformerContext);
|
|
150
151
|
const afterMutation = runTransformersWithContext(configMutator.clone(), [...internalTransformers, ...transformers], transformerContext);
|
|
151
152
|
// @ts-ignore - fix this
|
|
152
|
-
return new (_webpack5().WebpackDevServer)(afterMutation.raw, _webpack().default,
|
|
153
|
+
return new (_webpack5().WebpackDevServer)(afterMutation.raw, this.getWebpackInstance(webpackModulePath, _webpack().default), wdsPath);
|
|
153
154
|
}
|
|
154
155
|
mergeConfig(target, source) {
|
|
155
156
|
return (0, _webpackMerge().merge)(target, source);
|
|
156
157
|
}
|
|
157
|
-
createBundler(context, transformers = [], initialConfigs,
|
|
158
|
+
createBundler(context, transformers = [], initialConfigs, webpackModuleOrPath) {
|
|
158
159
|
var _context$metaData;
|
|
159
160
|
const transformerContext = {
|
|
160
161
|
mode: 'prod',
|
|
@@ -162,7 +163,7 @@ class WebpackMain {
|
|
|
162
163
|
};
|
|
163
164
|
// eslint-disable-next-line max-len
|
|
164
165
|
const configs = initialConfigs || this.createConfigs(context.targets, _webpack2().configFactory, transformers, transformerContext, context);
|
|
165
|
-
return new (_webpack4().WebpackBundler)(context.targets, configs, this.logger,
|
|
166
|
+
return new (_webpack4().WebpackBundler)(context.targets, configs, this.logger, this.getWebpackInstance(webpackModuleOrPath, _webpack().default), context.metaData);
|
|
166
167
|
}
|
|
167
168
|
createConfigs(targets, factory, transformers = [], transformerContext, bundlerContext) {
|
|
168
169
|
return targets.map(target => {
|
|
@@ -192,6 +193,16 @@ class WebpackMain {
|
|
|
192
193
|
}
|
|
193
194
|
return transformers;
|
|
194
195
|
}
|
|
196
|
+
getWebpackInstance(webpackOrPath, fallback) {
|
|
197
|
+
if (!webpackOrPath) {
|
|
198
|
+
return fallback;
|
|
199
|
+
}
|
|
200
|
+
if (typeof webpackOrPath === 'string') {
|
|
201
|
+
// eslint-disable-next-line import/no-dynamic-require, global-require
|
|
202
|
+
return require(webpackOrPath);
|
|
203
|
+
}
|
|
204
|
+
return webpackOrPath;
|
|
205
|
+
}
|
|
195
206
|
createDevServerConfig(entry, rootPath, devServerID, publicRoot, publicPath, title) {
|
|
196
207
|
return (0, _webpackDev().configFactory)(devServerID, rootPath, entry, publicRoot, publicPath, this.pubsub, title);
|
|
197
208
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WebpackMain","constructor","pubsub","workspace","bundler","logger","createDevServer","context","transformers","config","createDevServerConfig","entry","path","id","rootPath","publicPath","title","configMutator","WebpackConfigMutator","transformerContext","Object","assign","mode","internalTransformers","generateTransformers","undefined","afterMutation","runTransformersWithContext","clone","WebpackDevServer","raw","webpack","require","resolve","mergeConfig","target","source","merge","createBundler","initialConfigs","webpackInstance","isEnvTemplate","metaData","configs","createConfigs","targets","baseConfigFactory","WebpackBundler","factory","bundlerContext","map","baseConfig","_bundlerContext","devServerContext","hostDeps","hostDependencies","aliasHostDependencies","peerAliasesTransformer","generateAddAliasesFromPeersTransformer","push","externalizeHostDependencies","externalsTransformer","generateExternalsTransformer","devServerID","publicRoot","devServerConfigFactory","provider","logPublisher","createLogger","WebpackAspect","MainRuntime","PubsubAspect","WorkspaceAspect","BundlerAspect","LoggerAspect","addRuntime","Array","isArray","newConfig","reduce","acc","transformer"],"sources":["webpack.main.runtime.ts"],"sourcesContent":["import webpack, { Configuration } from 'webpack';\nimport PubsubAspect, { PubsubMain } from '@teambit/pubsub';\nimport {\n BundlerAspect,\n BundlerContext,\n BundlerMain,\n DevServer,\n DevServerContext,\n BundlerMode,\n Target,\n} from '@teambit/bundler';\nimport { MainRuntime } from '@teambit/cli';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { merge } from 'webpack-merge';\n// We want to import it to make sure bit recognizes it as a dependency\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport WsDevServer from 'webpack-dev-server';\nimport { WebpackConfigMutator } from '@teambit/webpack.modules.config-mutator';\n\nimport { generateAddAliasesFromPeersTransformer, generateExternalsTransformer } from './transformers';\nimport { configFactory as devServerConfigFactory } from './config/webpack.dev.config';\nimport { configFactory as baseConfigFactory } from './config/webpack.config';\n\nimport { WebpackAspect } from './webpack.aspect';\nimport { WebpackBundler } from './webpack.bundler';\nimport { WebpackDevServer } from './webpack.dev-server';\n\nexport type WebpackConfigTransformContext = GlobalWebpackConfigTransformContext & {\n target: Target;\n};\n\nexport type WebpackConfigDevServerTransformContext = GlobalWebpackConfigTransformContext & DevServerContext;\n\nexport type GlobalWebpackConfigTransformContext = {\n mode: BundlerMode;\n /**\n * Whether the config is for an env template bundling\n */\n isEnvTemplate?: boolean;\n /**\n * A path for the host root dir\n * Host root dir is usually the env root dir\n * This can be used in different bundle options which run require.resolve\n * for example when configuring webpack aliases or webpack expose loader on the peers deps\n */\n hostRootDir?: string;\n};\n\nexport type WebpackConfigTransformer = (\n config: WebpackConfigMutator,\n context: WebpackConfigTransformContext\n) => WebpackConfigMutator;\n\nexport type WebpackConfigDevServerTransformer = (\n config: WebpackConfigMutator,\n context: WebpackConfigDevServerTransformContext\n) => WebpackConfigMutator;\n\nexport class WebpackMain {\n constructor(\n /**\n * Pubsub extension.\n */\n public pubsub: PubsubMain,\n\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * bundler extension.\n */\n private bundler: BundlerMain,\n\n /**\n * Logger extension\n */\n public logger: Logger\n ) {}\n\n /**\n * create an instance of bit-compliant webpack dev server for a set of components\n */\n createDevServer(context: DevServerContext, transformers: WebpackConfigTransformer[] = []): DevServer {\n const config = this.createDevServerConfig(\n context.entry,\n this.workspace.path,\n context.id,\n context.rootPath,\n context.publicPath,\n context.title\n ) as any;\n const configMutator = new WebpackConfigMutator(config);\n const transformerContext: WebpackConfigDevServerTransformContext = Object.assign(context, { mode: 'dev' as const });\n const internalTransformers = this.generateTransformers(undefined, transformerContext);\n\n const afterMutation = runTransformersWithContext(\n configMutator.clone(),\n [...internalTransformers, ...transformers],\n transformerContext\n );\n // @ts-ignore - fix this\n return new WebpackDevServer(afterMutation.raw, webpack, require.resolve('webpack-dev-server'));\n }\n\n mergeConfig(target: any, source: any): any {\n return merge(target, source);\n }\n\n createBundler(\n context: BundlerContext,\n transformers: WebpackConfigTransformer[] = [],\n initialConfigs?: webpack.Configuration[],\n webpackInstance?: any\n ) {\n const transformerContext: GlobalWebpackConfigTransformContext = {\n mode: 'prod',\n isEnvTemplate: context.metaData?.isEnvTemplate,\n };\n // eslint-disable-next-line max-len\n const configs =\n initialConfigs ||\n this.createConfigs(context.targets, baseConfigFactory, transformers, transformerContext, context);\n return new WebpackBundler(context.targets, configs, this.logger, webpackInstance || webpack, context.metaData);\n }\n\n private createConfigs(\n targets: Target[],\n factory: (target: Target, context: BundlerContext) => Configuration,\n transformers: WebpackConfigTransformer[] = [],\n transformerContext: GlobalWebpackConfigTransformContext,\n bundlerContext: BundlerContext\n ) {\n return targets.map((target) => {\n const baseConfig = factory(target, bundlerContext);\n const configMutator = new WebpackConfigMutator(baseConfig);\n const context = Object.assign({}, transformerContext, { target });\n const internalTransformers = this.generateTransformers(context, undefined, target);\n const afterMutation = runTransformersWithContext(\n configMutator.clone(),\n [...internalTransformers, ...transformers],\n context\n );\n return afterMutation.raw;\n });\n }\n\n private generateTransformers(\n _bundlerContext?: WebpackConfigTransformContext,\n devServerContext?: WebpackConfigDevServerTransformContext,\n target?: Target\n ): Array<WebpackConfigTransformer> {\n const transformers: WebpackConfigTransformer[] = [];\n // TODO: handle dev server\n const hostDeps = target?.hostDependencies || devServerContext?.hostDependencies;\n if (hostDeps) {\n if (target?.aliasHostDependencies || devServerContext?.aliasHostDependencies) {\n const peerAliasesTransformer = generateAddAliasesFromPeersTransformer(hostDeps, this.logger);\n transformers.push(peerAliasesTransformer);\n }\n if (target?.externalizeHostDependencies || devServerContext?.externalizeHostDependencies) {\n const externalsTransformer = generateExternalsTransformer(hostDeps);\n transformers.push(externalsTransformer);\n }\n }\n return transformers;\n }\n\n private createDevServerConfig(\n entry: string[],\n rootPath: string,\n devServerID: string,\n publicRoot: string,\n publicPath: string,\n title?: string\n ) {\n return devServerConfigFactory(devServerID, rootPath, entry, publicRoot, publicPath, this.pubsub, title);\n }\n\n static slots = [];\n\n static runtime = MainRuntime;\n static dependencies = [PubsubAspect, WorkspaceAspect, BundlerAspect, LoggerAspect];\n\n static async provider([pubsub, workspace, bundler, logger]: [PubsubMain, Workspace, BundlerMain, LoggerMain]) {\n const logPublisher = logger.createLogger(WebpackAspect.id);\n return new WebpackMain(pubsub, workspace, bundler, logPublisher);\n }\n}\n\nWebpackAspect.addRuntime(WebpackMain);\n\nexport function runTransformersWithContext(\n config: WebpackConfigMutator,\n transformers: Array<WebpackConfigTransformer | WebpackConfigDevServerTransformer> = [],\n // context: WebpackConfigTransformContext | WebpackConfigDevServerTransformContext\n context: any\n): WebpackConfigMutator {\n if (!Array.isArray(transformers)) return config;\n const newConfig = transformers.reduce((acc, transformer) => {\n // @ts-ignore\n return transformer(acc, context);\n }, config);\n return newConfig;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["WebpackMain","constructor","pubsub","workspace","bundler","logger","createDevServer","context","transformers","webpackModulePath","webpackDevServerModulePath","config","createDevServerConfig","entry","path","id","rootPath","publicPath","title","wdsPath","require","resolve","configMutator","WebpackConfigMutator","transformerContext","Object","assign","mode","internalTransformers","generateTransformers","undefined","afterMutation","runTransformersWithContext","clone","WebpackDevServer","raw","getWebpackInstance","webpack","mergeConfig","target","source","merge","createBundler","initialConfigs","webpackModuleOrPath","isEnvTemplate","metaData","configs","createConfigs","targets","baseConfigFactory","WebpackBundler","factory","bundlerContext","map","baseConfig","_bundlerContext","devServerContext","hostDeps","hostDependencies","aliasHostDependencies","peerAliasesTransformer","generateAddAliasesFromPeersTransformer","push","externalizeHostDependencies","externalsTransformer","generateExternalsTransformer","webpackOrPath","fallback","devServerID","publicRoot","devServerConfigFactory","provider","logPublisher","createLogger","WebpackAspect","MainRuntime","PubsubAspect","WorkspaceAspect","BundlerAspect","LoggerAspect","addRuntime","Array","isArray","newConfig","reduce","acc","transformer"],"sources":["webpack.main.runtime.ts"],"sourcesContent":["import webpack, { Configuration } from 'webpack';\nimport PubsubAspect, { PubsubMain } from '@teambit/pubsub';\nimport {\n BundlerAspect,\n BundlerContext,\n BundlerMain,\n DevServer,\n DevServerContext,\n BundlerMode,\n Target,\n} from '@teambit/bundler';\nimport { MainRuntime } from '@teambit/cli';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport { Workspace, WorkspaceAspect } from '@teambit/workspace';\nimport { merge } from 'webpack-merge';\n// We want to import it to make sure bit recognizes it as a dependency\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport WsDevServer from 'webpack-dev-server';\nimport { WebpackConfigMutator } from '@teambit/webpack.modules.config-mutator';\n\nimport { generateAddAliasesFromPeersTransformer, generateExternalsTransformer } from './transformers';\nimport { configFactory as devServerConfigFactory } from './config/webpack.dev.config';\nimport { configFactory as baseConfigFactory } from './config/webpack.config';\n\nimport { WebpackAspect } from './webpack.aspect';\nimport { WebpackBundler } from './webpack.bundler';\nimport { WebpackDevServer } from './webpack.dev-server';\n\nexport type WebpackConfigTransformContext = GlobalWebpackConfigTransformContext & {\n target: Target;\n};\n\nexport type WebpackConfigDevServerTransformContext = GlobalWebpackConfigTransformContext & DevServerContext;\n\nexport type GlobalWebpackConfigTransformContext = {\n mode: BundlerMode;\n /**\n * Whether the config is for an env template bundling\n */\n isEnvTemplate?: boolean;\n /**\n * A path for the host root dir\n * Host root dir is usually the env root dir\n * This can be used in different bundle options which run require.resolve\n * for example when configuring webpack aliases or webpack expose loader on the peers deps\n */\n hostRootDir?: string;\n};\n\nexport type WebpackConfigTransformer = (\n config: WebpackConfigMutator,\n context: WebpackConfigTransformContext\n) => WebpackConfigMutator;\n\nexport type WebpackConfigDevServerTransformer = (\n config: WebpackConfigMutator,\n context: WebpackConfigDevServerTransformContext\n) => WebpackConfigMutator;\n\nexport class WebpackMain {\n constructor(\n /**\n * Pubsub extension.\n */\n public pubsub: PubsubMain,\n\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * bundler extension.\n */\n private bundler: BundlerMain,\n\n /**\n * Logger extension\n */\n public logger: Logger\n ) {}\n\n /**\n * create an instance of bit-compliant webpack dev server for a set of components\n */\n createDevServer(\n context: DevServerContext,\n transformers: WebpackConfigTransformer[] = [],\n webpackModulePath?: string,\n webpackDevServerModulePath?: string\n ): DevServer {\n const config = this.createDevServerConfig(\n context.entry,\n this.workspace.path,\n context.id,\n context.rootPath,\n context.publicPath,\n context.title\n ) as any;\n const wdsPath = webpackDevServerModulePath || require.resolve('webpack-dev-server');\n const configMutator = new WebpackConfigMutator(config);\n const transformerContext: WebpackConfigDevServerTransformContext = Object.assign(context, { mode: 'dev' as const });\n const internalTransformers = this.generateTransformers(undefined, transformerContext);\n\n const afterMutation = runTransformersWithContext(\n configMutator.clone(),\n [...internalTransformers, ...transformers],\n transformerContext\n );\n // @ts-ignore - fix this\n return new WebpackDevServer(afterMutation.raw, this.getWebpackInstance(webpackModulePath, webpack), wdsPath);\n }\n\n mergeConfig(target: any, source: any): any {\n return merge(target, source);\n }\n\n createBundler(\n context: BundlerContext,\n transformers: WebpackConfigTransformer[] = [],\n initialConfigs?: webpack.Configuration[],\n webpackModuleOrPath?: string | any\n ) {\n const transformerContext: GlobalWebpackConfigTransformContext = {\n mode: 'prod',\n isEnvTemplate: context.metaData?.isEnvTemplate,\n };\n // eslint-disable-next-line max-len\n const configs =\n initialConfigs ||\n this.createConfigs(context.targets, baseConfigFactory, transformers, transformerContext, context);\n return new WebpackBundler(\n context.targets,\n configs,\n this.logger,\n this.getWebpackInstance(webpackModuleOrPath, webpack),\n context.metaData\n );\n }\n\n private createConfigs(\n targets: Target[],\n factory: (target: Target, context: BundlerContext) => Configuration,\n transformers: WebpackConfigTransformer[] = [],\n transformerContext: GlobalWebpackConfigTransformContext,\n bundlerContext: BundlerContext\n ) {\n return targets.map((target) => {\n const baseConfig = factory(target, bundlerContext);\n const configMutator = new WebpackConfigMutator(baseConfig);\n const context = Object.assign({}, transformerContext, { target });\n const internalTransformers = this.generateTransformers(context, undefined, target);\n const afterMutation = runTransformersWithContext(\n configMutator.clone(),\n [...internalTransformers, ...transformers],\n context\n );\n return afterMutation.raw;\n });\n }\n\n private generateTransformers(\n _bundlerContext?: WebpackConfigTransformContext,\n devServerContext?: WebpackConfigDevServerTransformContext,\n target?: Target\n ): Array<WebpackConfigTransformer> {\n const transformers: WebpackConfigTransformer[] = [];\n // TODO: handle dev server\n const hostDeps = target?.hostDependencies || devServerContext?.hostDependencies;\n if (hostDeps) {\n if (target?.aliasHostDependencies || devServerContext?.aliasHostDependencies) {\n const peerAliasesTransformer = generateAddAliasesFromPeersTransformer(hostDeps, this.logger);\n transformers.push(peerAliasesTransformer);\n }\n if (target?.externalizeHostDependencies || devServerContext?.externalizeHostDependencies) {\n const externalsTransformer = generateExternalsTransformer(hostDeps);\n transformers.push(externalsTransformer);\n }\n }\n return transformers;\n }\n\n private getWebpackInstance(webpackOrPath?: any | string, fallback?: any) {\n if (!webpackOrPath) {\n return fallback;\n }\n if (typeof webpackOrPath === 'string') {\n // eslint-disable-next-line import/no-dynamic-require, global-require\n return require(webpackOrPath);\n }\n return webpackOrPath;\n }\n\n private createDevServerConfig(\n entry: string[],\n rootPath: string,\n devServerID: string,\n publicRoot: string,\n publicPath: string,\n title?: string\n ) {\n return devServerConfigFactory(devServerID, rootPath, entry, publicRoot, publicPath, this.pubsub, title);\n }\n\n static slots = [];\n\n static runtime = MainRuntime;\n static dependencies = [PubsubAspect, WorkspaceAspect, BundlerAspect, LoggerAspect];\n\n static async provider([pubsub, workspace, bundler, logger]: [PubsubMain, Workspace, BundlerMain, LoggerMain]) {\n const logPublisher = logger.createLogger(WebpackAspect.id);\n return new WebpackMain(pubsub, workspace, bundler, logPublisher);\n }\n}\n\nWebpackAspect.addRuntime(WebpackMain);\n\nexport function runTransformersWithContext(\n config: WebpackConfigMutator,\n transformers: Array<WebpackConfigTransformer | WebpackConfigDevServerTransformer> = [],\n // context: WebpackConfigTransformContext | WebpackConfigDevServerTransformContext\n context: any\n): WebpackConfigMutator {\n if (!Array.isArray(transformers)) return config;\n const newConfig = transformers.reduce((acc, transformer) => {\n // @ts-ignore\n return transformer(acc, context);\n }, config);\n return newConfig;\n}\n"],"mappings":"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"}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/webpack",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.1053",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/webpack/webpack",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.webpack",
|
|
8
8
|
"name": "webpack",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.1053"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"webpack": "5.51.1",
|
|
@@ -48,11 +48,11 @@
|
|
|
48
48
|
"@teambit/harmony": "0.4.6",
|
|
49
49
|
"@teambit/webpack.modules.config-mutator": "0.0.153",
|
|
50
50
|
"@teambit/bit-error": "0.0.402",
|
|
51
|
-
"@teambit/bundler": "0.0.
|
|
52
|
-
"@teambit/logger": "0.0.
|
|
53
|
-
"@teambit/cli": "0.0.
|
|
54
|
-
"@teambit/pubsub": "0.0.
|
|
55
|
-
"@teambit/workspace": "0.0.
|
|
51
|
+
"@teambit/bundler": "0.0.1053",
|
|
52
|
+
"@teambit/logger": "0.0.802",
|
|
53
|
+
"@teambit/cli": "0.0.709",
|
|
54
|
+
"@teambit/pubsub": "0.0.1053",
|
|
55
|
+
"@teambit/workspace": "0.0.1053",
|
|
56
56
|
"@teambit/webpack.modules.generate-expose-loaders": "0.0.10",
|
|
57
57
|
"@teambit/webpack.modules.generate-externals": "0.0.11",
|
|
58
58
|
"@teambit/webpack.plugins.inject-head-webpack-plugin": "0.0.3"
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"@types/testing-library__jest-dom": "5.9.5"
|
|
71
71
|
},
|
|
72
72
|
"peerDependencies": {
|
|
73
|
-
"@teambit/legacy": "1.0.
|
|
73
|
+
"@teambit/legacy": "1.0.489",
|
|
74
74
|
"react": "^16.8.0 || ^17.0.0",
|
|
75
75
|
"react-dom": "^16.8.0 || ^17.0.0"
|
|
76
76
|
},
|
|
Binary file
|