@teambit/webpack 0.0.1052 → 0.0.1054

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.
@@ -117,11 +117,13 @@ export function configFactory(
117
117
  // @ts-ignore - @types/WDS mismatch - 3.11.6 vs 4.0.3
118
118
  app.use(evalSourceMapMiddleware(wds));
119
119
  // This lets us open files from the runtime error overlay.
120
+ // @ts-ignore
120
121
  app.use(errorOverlayMiddleware());
121
122
  },
122
123
 
123
124
  onAfterSetupMiddleware({ app }) {
124
125
  // Redirect to `PUBLIC_URL` or `homepage` from `package.json` if url not match
126
+ // @ts-ignore
125
127
  app.use(redirectServedPath(publicUrlOrPath));
126
128
 
127
129
  // This service worker file is effectively a 'no-op' that will reset any
@@ -129,6 +131,7 @@ export function configFactory(
129
131
  // We do this in development to avoid hitting the production cache if
130
132
  // it used the same host and port.
131
133
  // https://github.com/facebook/create-react-app/issues/2272#issuecomment-302832432
134
+ // @ts-ignore
132
135
  app.use(noopServiceWorkerMiddleware(publicUrlOrPath));
133
136
  },
134
137
 
@@ -176,12 +176,14 @@ function configFactory(devServerID, workspaceDir, entryFiles, publicRoot, public
176
176
  // @ts-ignore - @types/WDS mismatch - 3.11.6 vs 4.0.3
177
177
  app.use((0, _evalSourceMapMiddleware().default)(wds));
178
178
  // This lets us open files from the runtime error overlay.
179
+ // @ts-ignore
179
180
  app.use((0, _errorOverlayMiddleware().default)());
180
181
  },
181
182
  onAfterSetupMiddleware({
182
183
  app
183
184
  }) {
184
185
  // Redirect to `PUBLIC_URL` or `homepage` from `package.json` if url not match
186
+ // @ts-ignore
185
187
  app.use((0, _redirectServedPathMiddleware().default)(publicUrlOrPath));
186
188
 
187
189
  // This service worker file is effectively a 'no-op' that will reset any
@@ -189,6 +191,7 @@ function configFactory(devServerID, workspaceDir, entryFiles, publicRoot, public
189
191
  // We do this in development to avoid hitting the production cache if
190
192
  // it used the same host and port.
191
193
  // https://github.com/facebook/create-react-app/issues/2272#issuecomment-302832432
194
+ // @ts-ignore
192
195
  app.use((0, _noopServiceWorkerMiddleware().default)(publicUrlOrPath));
193
196
  },
194
197
  devMiddleware: {
@@ -1 +1 @@
1
- {"version":3,"names":["publicUrlOrPath","getPublicUrlOrPath","process","env","NODE_ENV","configFactory","devServerID","workspaceDir","entryFiles","publicRoot","publicPath","pubsub","title","favicon","resolveWorkspacePath","relativePath","path","resolve","publicDirectory","mode","devtool","entry","map","filePath","output","filename","pathinfo","chunkFilename","devtoolModuleFilenameTemplate","info","pathNormalizeToLinux","absoluteResourcePath","infrastructureLogging","level","stats","errorDetails","devServer","allowedHosts","static","directory","staticOptions","serveIndex","watch","compress","hot","historyApiFallback","disableDotRule","index","client","overlay","onBeforeSetupMiddleware","wds","app","use","evalSourceMapMiddleware","errorOverlayMiddleware","onAfterSetupMiddleware","redirectServedPath","noopServiceWorkerMiddleware","devMiddleware","join","alias","fallbacksAliases","fallback","fallbacks","plugins","HtmlWebpackPlugin","templateContent","html","webpack","ProvidePlugin","fallbacksProvidePluginConfig","WebpackBitReporterPlugin","options"],"sources":["webpack.dev.config.ts"],"sourcesContent":["import path from 'path';\nimport webpack from 'webpack';\nimport HtmlWebpackPlugin from 'html-webpack-plugin';\nimport errorOverlayMiddleware from 'react-dev-utils/errorOverlayMiddleware';\nimport evalSourceMapMiddleware from 'react-dev-utils/evalSourceMapMiddleware';\nimport noopServiceWorkerMiddleware from 'react-dev-utils/noopServiceWorkerMiddleware';\nimport redirectServedPath from 'react-dev-utils/redirectServedPathMiddleware';\nimport getPublicUrlOrPath from 'react-dev-utils/getPublicUrlOrPath';\nimport { PubsubMain } from '@teambit/pubsub';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport { WebpackConfigWithDevServer } from '../webpack.dev-server';\nimport { fallbacks } from './webpack-fallbacks';\n\nimport { html } from './html';\n\nimport { WebpackBitReporterPlugin } from '../plugins/webpack-bit-reporter-plugin';\nimport { fallbacksProvidePluginConfig } from './webpack-fallbacks-provide-plugin-config';\nimport { fallbacksAliases } from './webpack-fallbacks-aliases';\n\nconst publicUrlOrPath = getPublicUrlOrPath(process.env.NODE_ENV === 'development', '/', '/public');\n\nexport function configFactory(\n devServerID: string,\n workspaceDir: string,\n entryFiles: string[],\n publicRoot: string,\n publicPath: string,\n pubsub: PubsubMain,\n title?: string,\n favicon?: string\n): WebpackConfigWithDevServer {\n const resolveWorkspacePath = (relativePath) => path.resolve(workspaceDir, relativePath);\n\n // Required for babel-preset-react-app\n process.env.NODE_ENV = 'development';\n\n const publicDirectory = `${publicRoot}/${publicPath}`;\n\n return {\n // Environment mode\n mode: 'development',\n\n devtool: 'eval-cheap-module-source-map',\n\n // Entry point of app\n entry: entryFiles.map((filePath) => resolveWorkspacePath(filePath)),\n\n output: {\n // Development filename output\n filename: 'static/js/[name].bundle.js',\n\n pathinfo: true,\n\n path: resolveWorkspacePath(publicDirectory),\n\n // publicPath: resolveWorkspacePath(publicDirectory),\n\n chunkFilename: 'static/js/[name].chunk.js',\n\n // point sourcemap entries to original disk locations (format as URL on windows)\n devtoolModuleFilenameTemplate: (info) => pathNormalizeToLinux(path.resolve(info.absoluteResourcePath)),\n\n // this defaults to 'window', but by setting it to 'this' then\n // module chunks which are built will work in web workers as well.\n // Commented out to use the default (self) as according to tobias with webpack5 self is working with workers as well\n // globalObject: 'this',\n },\n\n infrastructureLogging: {\n level: 'error',\n },\n\n stats: {\n errorDetails: true,\n },\n\n devServer: {\n allowedHosts: 'all',\n\n static: [\n {\n directory: resolveWorkspacePath(publicDirectory),\n staticOptions: {},\n // Don't be confused with `dev.publicPath`, it is `publicPath` for static directory\n // Can be:\n // publicPath: ['/static-public-path-one/', '/static-public-path-two/'],\n publicPath: publicDirectory,\n // Can be:\n // serveIndex: {} (options for the `serveIndex` option you can find https://github.com/expressjs/serve-index)\n serveIndex: true,\n // Can be:\n // watch: {} (options for the `watch` option you can find https://github.com/paulmillr/chokidar)\n watch: true,\n },\n ],\n\n // Enable compression\n compress: true,\n\n // Enable hot reloading\n hot: true,\n\n historyApiFallback: {\n disableDotRule: true,\n index: resolveWorkspacePath(publicDirectory),\n },\n\n client: {\n overlay: false,\n },\n\n onBeforeSetupMiddleware(wds) {\n const { app } = wds;\n // Keep `evalSourceMapMiddleware` and `errorOverlayMiddleware`\n // middlewares before `redirectServedPath` otherwise will not have any effect\n // This lets us fetch source contents from webpack for the error overlay\n // @ts-ignore - @types/WDS mismatch - 3.11.6 vs 4.0.3\n app.use(evalSourceMapMiddleware(wds));\n // This lets us open files from the runtime error overlay.\n app.use(errorOverlayMiddleware());\n },\n\n onAfterSetupMiddleware({ app }) {\n // Redirect to `PUBLIC_URL` or `homepage` from `package.json` if url not match\n app.use(redirectServedPath(publicUrlOrPath));\n\n // This service worker file is effectively a 'no-op' that will reset any\n // previous service worker registered for the same host:port combination.\n // We do this in development to avoid hitting the production cache if\n // it used the same host and port.\n // https://github.com/facebook/create-react-app/issues/2272#issuecomment-302832432\n app.use(noopServiceWorkerMiddleware(publicUrlOrPath));\n },\n\n devMiddleware: {\n // forward static files\n publicPath: path.join('/', publicRoot),\n },\n },\n\n resolve: {\n // TODO - check - we shoult not need both fallbacks and alias and provider plugin\n alias: fallbacksAliases,\n\n fallback: fallbacks as any,\n },\n\n plugins: [\n new HtmlWebpackPlugin({\n templateContent: html(title || 'Component preview'),\n filename: 'index.html',\n favicon,\n }),\n new webpack.ProvidePlugin(fallbacksProvidePluginConfig),\n\n new WebpackBitReporterPlugin({\n options: { pubsub, devServerID },\n }),\n ],\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["publicUrlOrPath","getPublicUrlOrPath","process","env","NODE_ENV","configFactory","devServerID","workspaceDir","entryFiles","publicRoot","publicPath","pubsub","title","favicon","resolveWorkspacePath","relativePath","path","resolve","publicDirectory","mode","devtool","entry","map","filePath","output","filename","pathinfo","chunkFilename","devtoolModuleFilenameTemplate","info","pathNormalizeToLinux","absoluteResourcePath","infrastructureLogging","level","stats","errorDetails","devServer","allowedHosts","static","directory","staticOptions","serveIndex","watch","compress","hot","historyApiFallback","disableDotRule","index","client","overlay","onBeforeSetupMiddleware","wds","app","use","evalSourceMapMiddleware","errorOverlayMiddleware","onAfterSetupMiddleware","redirectServedPath","noopServiceWorkerMiddleware","devMiddleware","join","alias","fallbacksAliases","fallback","fallbacks","plugins","HtmlWebpackPlugin","templateContent","html","webpack","ProvidePlugin","fallbacksProvidePluginConfig","WebpackBitReporterPlugin","options"],"sources":["webpack.dev.config.ts"],"sourcesContent":["import path from 'path';\nimport webpack from 'webpack';\nimport HtmlWebpackPlugin from 'html-webpack-plugin';\nimport errorOverlayMiddleware from 'react-dev-utils/errorOverlayMiddleware';\nimport evalSourceMapMiddleware from 'react-dev-utils/evalSourceMapMiddleware';\nimport noopServiceWorkerMiddleware from 'react-dev-utils/noopServiceWorkerMiddleware';\nimport redirectServedPath from 'react-dev-utils/redirectServedPathMiddleware';\nimport getPublicUrlOrPath from 'react-dev-utils/getPublicUrlOrPath';\nimport { PubsubMain } from '@teambit/pubsub';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport { WebpackConfigWithDevServer } from '../webpack.dev-server';\nimport { fallbacks } from './webpack-fallbacks';\n\nimport { html } from './html';\n\nimport { WebpackBitReporterPlugin } from '../plugins/webpack-bit-reporter-plugin';\nimport { fallbacksProvidePluginConfig } from './webpack-fallbacks-provide-plugin-config';\nimport { fallbacksAliases } from './webpack-fallbacks-aliases';\n\nconst publicUrlOrPath = getPublicUrlOrPath(process.env.NODE_ENV === 'development', '/', '/public');\n\nexport function configFactory(\n devServerID: string,\n workspaceDir: string,\n entryFiles: string[],\n publicRoot: string,\n publicPath: string,\n pubsub: PubsubMain,\n title?: string,\n favicon?: string\n): WebpackConfigWithDevServer {\n const resolveWorkspacePath = (relativePath) => path.resolve(workspaceDir, relativePath);\n\n // Required for babel-preset-react-app\n process.env.NODE_ENV = 'development';\n\n const publicDirectory = `${publicRoot}/${publicPath}`;\n\n return {\n // Environment mode\n mode: 'development',\n\n devtool: 'eval-cheap-module-source-map',\n\n // Entry point of app\n entry: entryFiles.map((filePath) => resolveWorkspacePath(filePath)),\n\n output: {\n // Development filename output\n filename: 'static/js/[name].bundle.js',\n\n pathinfo: true,\n\n path: resolveWorkspacePath(publicDirectory),\n\n // publicPath: resolveWorkspacePath(publicDirectory),\n\n chunkFilename: 'static/js/[name].chunk.js',\n\n // point sourcemap entries to original disk locations (format as URL on windows)\n devtoolModuleFilenameTemplate: (info) => pathNormalizeToLinux(path.resolve(info.absoluteResourcePath)),\n\n // this defaults to 'window', but by setting it to 'this' then\n // module chunks which are built will work in web workers as well.\n // Commented out to use the default (self) as according to tobias with webpack5 self is working with workers as well\n // globalObject: 'this',\n },\n\n infrastructureLogging: {\n level: 'error',\n },\n\n stats: {\n errorDetails: true,\n },\n\n devServer: {\n allowedHosts: 'all',\n\n static: [\n {\n directory: resolveWorkspacePath(publicDirectory),\n staticOptions: {},\n // Don't be confused with `dev.publicPath`, it is `publicPath` for static directory\n // Can be:\n // publicPath: ['/static-public-path-one/', '/static-public-path-two/'],\n publicPath: publicDirectory,\n // Can be:\n // serveIndex: {} (options for the `serveIndex` option you can find https://github.com/expressjs/serve-index)\n serveIndex: true,\n // Can be:\n // watch: {} (options for the `watch` option you can find https://github.com/paulmillr/chokidar)\n watch: true,\n },\n ],\n\n // Enable compression\n compress: true,\n\n // Enable hot reloading\n hot: true,\n\n historyApiFallback: {\n disableDotRule: true,\n index: resolveWorkspacePath(publicDirectory),\n },\n\n client: {\n overlay: false,\n },\n\n onBeforeSetupMiddleware(wds) {\n const { app } = wds;\n // Keep `evalSourceMapMiddleware` and `errorOverlayMiddleware`\n // middlewares before `redirectServedPath` otherwise will not have any effect\n // This lets us fetch source contents from webpack for the error overlay\n // @ts-ignore - @types/WDS mismatch - 3.11.6 vs 4.0.3\n app.use(evalSourceMapMiddleware(wds));\n // This lets us open files from the runtime error overlay.\n // @ts-ignore\n app.use(errorOverlayMiddleware());\n },\n\n onAfterSetupMiddleware({ app }) {\n // Redirect to `PUBLIC_URL` or `homepage` from `package.json` if url not match\n // @ts-ignore\n app.use(redirectServedPath(publicUrlOrPath));\n\n // This service worker file is effectively a 'no-op' that will reset any\n // previous service worker registered for the same host:port combination.\n // We do this in development to avoid hitting the production cache if\n // it used the same host and port.\n // https://github.com/facebook/create-react-app/issues/2272#issuecomment-302832432\n // @ts-ignore\n app.use(noopServiceWorkerMiddleware(publicUrlOrPath));\n },\n\n devMiddleware: {\n // forward static files\n publicPath: path.join('/', publicRoot),\n },\n },\n\n resolve: {\n // TODO - check - we shoult not need both fallbacks and alias and provider plugin\n alias: fallbacksAliases,\n\n fallback: fallbacks as any,\n },\n\n plugins: [\n new HtmlWebpackPlugin({\n templateContent: html(title || 'Component preview'),\n filename: 'index.html',\n favicon,\n }),\n new webpack.ProvidePlugin(fallbacksProvidePluginConfig),\n\n new WebpackBitReporterPlugin({\n options: { pubsub, devServerID },\n }),\n ],\n };\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.webpack_webpack@0.0.1052/dist/webpack.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.webpack_webpack@0.0.1052/dist/webpack.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.webpack_webpack@0.0.1054/dist/webpack.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.webpack_webpack@0.0.1054/dist/webpack.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -104,6 +104,8 @@ class WebpackDevServer {
104
104
  // @ts-ignore in the capsules it throws an error about compatibilities issues between webpack.compiler and webpackDevServer/webpack/compiler
105
105
  const webpackDs = new this.WsDevServer(this.config.devServer, this.getCompiler());
106
106
  await webpackDs.start();
107
+
108
+ // @ts-ignore
107
109
  return webpackDs.server;
108
110
  }
109
111
  addSignalListener() {
@@ -1 +1 @@
1
- {"version":3,"names":["WebpackDevServer","constructor","config","webpack","webpackDevServer","WebpackAspect","id","WsDevServer","require","getCompiler","version","root","findRoot","packageJsonPath","join","packageJson","err","displayConfig","inspect","depth","listen","port","devServer","Error","addSignalListener","addDevServerEntrypoints","webpackDs","start","server","process","on","exit"],"sources":["webpack.dev-server.ts"],"sourcesContent":["import { join } from 'path';\nimport type { DevServer } from '@teambit/bundler';\nimport findRoot from 'find-root';\nimport type { Server } from 'http';\nimport type { webpack as webpackCompiler, Configuration } from 'webpack';\nimport type * as WDS from 'webpack-dev-server';\nimport { inspect } from 'util';\nimport { WebpackAspect } from './webpack.aspect';\n\nexport interface WebpackConfigWithDevServer extends Configuration {\n devServer: WDS.Configuration;\n favicon?: string;\n}\nexport class WebpackDevServer implements DevServer {\n private readonly WsDevServer: typeof WDS;\n constructor(\n private config: WebpackConfigWithDevServer,\n private webpack: typeof webpackCompiler,\n /**\n * path to the webpack-dev-server module or instance of webpack-dev-server.\n * this accept getting an instance for backward compatibility.\n */\n private webpackDevServer: string | typeof WDS\n ) {\n if (typeof this.webpackDevServer === 'string') {\n // eslint-disable-next-line import/no-dynamic-require, global-require\n this.WsDevServer = require(this.webpackDevServer);\n } else {\n this.WsDevServer = this.webpackDevServer;\n }\n }\n\n private getCompiler(): any {\n return this.webpack(this.config);\n }\n\n id = WebpackAspect.id;\n\n displayName = 'Webpack dev server';\n\n version(): string {\n if (typeof this.webpackDevServer !== 'string') {\n return 'unknown';\n }\n // Resolve version from the webpack-dev-server package.json\n try {\n const root = findRoot(this.webpackDevServer);\n const packageJsonPath = join(root, 'package.json');\n // eslint-disable-next-line import/no-dynamic-require, global-require\n const packageJson = require(packageJsonPath);\n return packageJson.version;\n } catch (err) {\n return 'unknown';\n }\n }\n\n displayConfig(): string {\n return inspect(this.config, { depth: 10 });\n }\n\n async listen(port: number): Promise<Server> {\n if (!this.config.devServer) {\n throw new Error('Missing devServer configuration for webpack');\n }\n // Prevent different port between the config port and the listen arg port\n this.config.devServer.port = port;\n\n // Adding signal listeners to make sure we immediately close the process on sigint / sigterm (otherwise webpack dev server closing will take time)\n this.addSignalListener();\n\n // Compatibility check for Webpack dev server v3 (e.g. for Angular v8)\n if (typeof (this.WsDevServer as any).addDevServerEntrypoints !== 'undefined') {\n // @ts-ignore in the capsules it throws an error about compatibilities issues between webpack.compiler and webpackDevServer/webpack/compiler\n const webpackDs = new (this.WsDevServer as any)(this.getCompiler(), this.config.devServer);\n return webpackDs.listen(port);\n }\n\n // @ts-ignore in the capsules it throws an error about compatibilities issues between webpack.compiler and webpackDevServer/webpack/compiler\n const webpackDs: WDS = new this.WsDevServer(this.config.devServer, this.getCompiler());\n await webpackDs.start();\n\n return webpackDs.server;\n }\n\n private addSignalListener() {\n process.on('SIGTERM', () => {\n process.exit();\n });\n\n process.on('SIGINT', () => {\n process.exit();\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAIA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAMO,MAAMA,gBAAgB,CAAsB;EAEjDC,WAAW,CACDC,MAAkC,EAClCC,OAA+B;EACvC;AACJ;AACA;AACA;EACYC,gBAAqC,EAC7C;IAAA,KAPQF,MAAkC,GAAlCA,MAAkC;IAAA,KAClCC,OAA+B,GAA/BA,OAA+B;IAAA,KAK/BC,gBAAqC,GAArCA,gBAAqC;IAAA;IAAA,4CAc1CC,wBAAa,CAACC,EAAE;IAAA,qDAEP,oBAAoB;IAdhC,IAAI,OAAO,IAAI,CAACF,gBAAgB,KAAK,QAAQ,EAAE;MAC7C;MACA,IAAI,CAACG,WAAW,GAAGC,OAAO,CAAC,IAAI,CAACJ,gBAAgB,CAAC;IACnD,CAAC,MAAM;MACL,IAAI,CAACG,WAAW,GAAG,IAAI,CAACH,gBAAgB;IAC1C;EACF;EAEQK,WAAW,GAAQ;IACzB,OAAO,IAAI,CAACN,OAAO,CAAC,IAAI,CAACD,MAAM,CAAC;EAClC;EAMAQ,OAAO,GAAW;IAChB,IAAI,OAAO,IAAI,CAACN,gBAAgB,KAAK,QAAQ,EAAE;MAC7C,OAAO,SAAS;IAClB;IACA;IACA,IAAI;MACF,MAAMO,IAAI,GAAG,IAAAC,mBAAQ,EAAC,IAAI,CAACR,gBAAgB,CAAC;MAC5C,MAAMS,eAAe,GAAG,IAAAC,YAAI,EAACH,IAAI,EAAE,cAAc,CAAC;MAClD;MACA,MAAMI,WAAW,GAAGP,OAAO,CAACK,eAAe,CAAC;MAC5C,OAAOE,WAAW,CAACL,OAAO;IAC5B,CAAC,CAAC,OAAOM,GAAG,EAAE;MACZ,OAAO,SAAS;IAClB;EACF;EAEAC,aAAa,GAAW;IACtB,OAAO,IAAAC,eAAO,EAAC,IAAI,CAAChB,MAAM,EAAE;MAAEiB,KAAK,EAAE;IAAG,CAAC,CAAC;EAC5C;EAEA,MAAMC,MAAM,CAACC,IAAY,EAAmB;IAC1C,IAAI,CAAC,IAAI,CAACnB,MAAM,CAACoB,SAAS,EAAE;MAC1B,MAAM,IAAIC,KAAK,CAAC,6CAA6C,CAAC;IAChE;IACA;IACA,IAAI,CAACrB,MAAM,CAACoB,SAAS,CAACD,IAAI,GAAGA,IAAI;;IAEjC;IACA,IAAI,CAACG,iBAAiB,EAAE;;IAExB;IACA,IAAI,OAAQ,IAAI,CAACjB,WAAW,CAASkB,uBAAuB,KAAK,WAAW,EAAE;MAC5E;MACA,MAAMC,SAAS,GAAG,IAAK,IAAI,CAACnB,WAAW,CAAS,IAAI,CAACE,WAAW,EAAE,EAAE,IAAI,CAACP,MAAM,CAACoB,SAAS,CAAC;MAC1F,OAAOI,SAAS,CAACN,MAAM,CAACC,IAAI,CAAC;IAC/B;;IAEA;IACA,MAAMK,SAAc,GAAG,IAAI,IAAI,CAACnB,WAAW,CAAC,IAAI,CAACL,MAAM,CAACoB,SAAS,EAAE,IAAI,CAACb,WAAW,EAAE,CAAC;IACtF,MAAMiB,SAAS,CAACC,KAAK,EAAE;IAEvB,OAAOD,SAAS,CAACE,MAAM;EACzB;EAEQJ,iBAAiB,GAAG;IAC1BK,OAAO,CAACC,EAAE,CAAC,SAAS,EAAE,MAAM;MAC1BD,OAAO,CAACE,IAAI,EAAE;IAChB,CAAC,CAAC;IAEFF,OAAO,CAACC,EAAE,CAAC,QAAQ,EAAE,MAAM;MACzBD,OAAO,CAACE,IAAI,EAAE;IAChB,CAAC,CAAC;EACJ;AACF;AAAC"}
1
+ {"version":3,"names":["WebpackDevServer","constructor","config","webpack","webpackDevServer","WebpackAspect","id","WsDevServer","require","getCompiler","version","root","findRoot","packageJsonPath","join","packageJson","err","displayConfig","inspect","depth","listen","port","devServer","Error","addSignalListener","addDevServerEntrypoints","webpackDs","start","server","process","on","exit"],"sources":["webpack.dev-server.ts"],"sourcesContent":["import { join } from 'path';\nimport type { DevServer } from '@teambit/bundler';\nimport findRoot from 'find-root';\nimport type { Server } from 'http';\nimport type { webpack as webpackCompiler, Configuration } from 'webpack';\nimport type * as WDS from 'webpack-dev-server';\nimport { inspect } from 'util';\nimport { WebpackAspect } from './webpack.aspect';\n\nexport interface WebpackConfigWithDevServer extends Configuration {\n devServer: WDS.Configuration;\n favicon?: string;\n}\nexport class WebpackDevServer implements DevServer {\n private readonly WsDevServer: typeof WDS;\n constructor(\n private config: WebpackConfigWithDevServer,\n private webpack: typeof webpackCompiler,\n /**\n * path to the webpack-dev-server module or instance of webpack-dev-server.\n * this accept getting an instance for backward compatibility.\n */\n private webpackDevServer: string | typeof WDS\n ) {\n if (typeof this.webpackDevServer === 'string') {\n // eslint-disable-next-line import/no-dynamic-require, global-require\n this.WsDevServer = require(this.webpackDevServer);\n } else {\n this.WsDevServer = this.webpackDevServer;\n }\n }\n\n private getCompiler(): any {\n return this.webpack(this.config);\n }\n\n id = WebpackAspect.id;\n\n displayName = 'Webpack dev server';\n\n version(): string {\n if (typeof this.webpackDevServer !== 'string') {\n return 'unknown';\n }\n // Resolve version from the webpack-dev-server package.json\n try {\n const root = findRoot(this.webpackDevServer);\n const packageJsonPath = join(root, 'package.json');\n // eslint-disable-next-line import/no-dynamic-require, global-require\n const packageJson = require(packageJsonPath);\n return packageJson.version;\n } catch (err) {\n return 'unknown';\n }\n }\n\n displayConfig(): string {\n return inspect(this.config, { depth: 10 });\n }\n\n async listen(port: number): Promise<Server> {\n if (!this.config.devServer) {\n throw new Error('Missing devServer configuration for webpack');\n }\n // Prevent different port between the config port and the listen arg port\n this.config.devServer.port = port;\n\n // Adding signal listeners to make sure we immediately close the process on sigint / sigterm (otherwise webpack dev server closing will take time)\n this.addSignalListener();\n\n // Compatibility check for Webpack dev server v3 (e.g. for Angular v8)\n if (typeof (this.WsDevServer as any).addDevServerEntrypoints !== 'undefined') {\n // @ts-ignore in the capsules it throws an error about compatibilities issues between webpack.compiler and webpackDevServer/webpack/compiler\n const webpackDs = new (this.WsDevServer as any)(this.getCompiler(), this.config.devServer);\n return webpackDs.listen(port);\n }\n\n // @ts-ignore in the capsules it throws an error about compatibilities issues between webpack.compiler and webpackDevServer/webpack/compiler\n const webpackDs: WDS = new this.WsDevServer(this.config.devServer, this.getCompiler());\n await webpackDs.start();\n\n // @ts-ignore\n return webpackDs.server;\n }\n\n private addSignalListener() {\n process.on('SIGTERM', () => {\n process.exit();\n });\n\n process.on('SIGINT', () => {\n process.exit();\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAAA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAEA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAIA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AACA;EAAA;EAAA;IAAA;EAAA;EAAA;AAAA;AAMO,MAAMA,gBAAgB,CAAsB;EAEjDC,WAAW,CACDC,MAAkC,EAClCC,OAA+B;EACvC;AACJ;AACA;AACA;EACYC,gBAAqC,EAC7C;IAAA,KAPQF,MAAkC,GAAlCA,MAAkC;IAAA,KAClCC,OAA+B,GAA/BA,OAA+B;IAAA,KAK/BC,gBAAqC,GAArCA,gBAAqC;IAAA;IAAA,4CAc1CC,wBAAa,CAACC,EAAE;IAAA,qDAEP,oBAAoB;IAdhC,IAAI,OAAO,IAAI,CAACF,gBAAgB,KAAK,QAAQ,EAAE;MAC7C;MACA,IAAI,CAACG,WAAW,GAAGC,OAAO,CAAC,IAAI,CAACJ,gBAAgB,CAAC;IACnD,CAAC,MAAM;MACL,IAAI,CAACG,WAAW,GAAG,IAAI,CAACH,gBAAgB;IAC1C;EACF;EAEQK,WAAW,GAAQ;IACzB,OAAO,IAAI,CAACN,OAAO,CAAC,IAAI,CAACD,MAAM,CAAC;EAClC;EAMAQ,OAAO,GAAW;IAChB,IAAI,OAAO,IAAI,CAACN,gBAAgB,KAAK,QAAQ,EAAE;MAC7C,OAAO,SAAS;IAClB;IACA;IACA,IAAI;MACF,MAAMO,IAAI,GAAG,IAAAC,mBAAQ,EAAC,IAAI,CAACR,gBAAgB,CAAC;MAC5C,MAAMS,eAAe,GAAG,IAAAC,YAAI,EAACH,IAAI,EAAE,cAAc,CAAC;MAClD;MACA,MAAMI,WAAW,GAAGP,OAAO,CAACK,eAAe,CAAC;MAC5C,OAAOE,WAAW,CAACL,OAAO;IAC5B,CAAC,CAAC,OAAOM,GAAG,EAAE;MACZ,OAAO,SAAS;IAClB;EACF;EAEAC,aAAa,GAAW;IACtB,OAAO,IAAAC,eAAO,EAAC,IAAI,CAAChB,MAAM,EAAE;MAAEiB,KAAK,EAAE;IAAG,CAAC,CAAC;EAC5C;EAEA,MAAMC,MAAM,CAACC,IAAY,EAAmB;IAC1C,IAAI,CAAC,IAAI,CAACnB,MAAM,CAACoB,SAAS,EAAE;MAC1B,MAAM,IAAIC,KAAK,CAAC,6CAA6C,CAAC;IAChE;IACA;IACA,IAAI,CAACrB,MAAM,CAACoB,SAAS,CAACD,IAAI,GAAGA,IAAI;;IAEjC;IACA,IAAI,CAACG,iBAAiB,EAAE;;IAExB;IACA,IAAI,OAAQ,IAAI,CAACjB,WAAW,CAASkB,uBAAuB,KAAK,WAAW,EAAE;MAC5E;MACA,MAAMC,SAAS,GAAG,IAAK,IAAI,CAACnB,WAAW,CAAS,IAAI,CAACE,WAAW,EAAE,EAAE,IAAI,CAACP,MAAM,CAACoB,SAAS,CAAC;MAC1F,OAAOI,SAAS,CAACN,MAAM,CAACC,IAAI,CAAC;IAC/B;;IAEA;IACA,MAAMK,SAAc,GAAG,IAAI,IAAI,CAACnB,WAAW,CAAC,IAAI,CAACL,MAAM,CAACoB,SAAS,EAAE,IAAI,CAACb,WAAW,EAAE,CAAC;IACtF,MAAMiB,SAAS,CAACC,KAAK,EAAE;;IAEvB;IACA,OAAOD,SAAS,CAACE,MAAM;EACzB;EAEQJ,iBAAiB,GAAG;IAC1BK,OAAO,CAACC,EAAE,CAAC,SAAS,EAAE,MAAM;MAC1BD,OAAO,CAACE,IAAI,EAAE;IAChB,CAAC,CAAC;IAEFF,OAAO,CAACC,EAAE,CAAC,QAAQ,EAAE,MAAM;MACzBD,OAAO,CAACE,IAAI,EAAE;IAChB,CAAC,CAAC;EACJ;AACF;AAAC"}
@@ -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[], webpackInstance?: any): WebpackBundler;
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, require.resolve('webpack-dev-server'));
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, webpackInstance) {
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, webpackInstance || _webpack().default, context.metaData);
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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"}
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@teambit/webpack",
3
- "version": "0.0.1052",
3
+ "version": "0.0.1054",
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.1052"
9
+ "version": "0.0.1054"
10
10
  },
11
11
  "dependencies": {
12
- "webpack": "5.51.1",
12
+ "webpack": "5.82.1",
13
13
  "lodash": "4.17.21",
14
14
  "p-map-series": "2.1.0",
15
15
  "find-root": "1.1.0",
16
- "webpack-dev-server": "4.1.1",
16
+ "webpack-dev-server": "4.15.0",
17
17
  "webpack-merge": "5.8.0",
18
18
  "compression-webpack-plugin": "9.2.0",
19
19
  "html-webpack-plugin": "5.3.2",
@@ -46,23 +46,23 @@
46
46
  "core-js": "^3.0.0",
47
47
  "@babel/runtime": "7.20.0",
48
48
  "@teambit/harmony": "0.4.6",
49
- "@teambit/webpack.modules.config-mutator": "0.0.153",
49
+ "@teambit/webpack.modules.config-mutator": "0.0.154",
50
50
  "@teambit/bit-error": "0.0.402",
51
- "@teambit/bundler": "0.0.1052",
52
- "@teambit/logger": "0.0.801",
53
- "@teambit/cli": "0.0.708",
54
- "@teambit/pubsub": "0.0.1052",
55
- "@teambit/workspace": "0.0.1052",
51
+ "@teambit/bundler": "0.0.1054",
52
+ "@teambit/logger": "0.0.803",
53
+ "@teambit/cli": "0.0.710",
54
+ "@teambit/pubsub": "0.0.1054",
55
+ "@teambit/workspace": "0.0.1054",
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"
59
59
  },
60
60
  "devDependencies": {
61
- "@types/webpack": "5.28.0",
61
+ "@types/webpack": "5.28.1",
62
62
  "@types/lodash": "4.14.165",
63
63
  "@types/react": "^17.0.8",
64
64
  "@types/find-root": "1.1.2",
65
- "@types/webpack-dev-server": "4.0.3",
65
+ "@types/webpack-dev-server": "4.7.2",
66
66
  "@types/react-dev-utils": "9.0.10",
67
67
  "@types/node": "12.20.4",
68
68
  "@types/react-dom": "^17.0.5",
@@ -70,7 +70,7 @@
70
70
  "@types/testing-library__jest-dom": "5.9.5"
71
71
  },
72
72
  "peerDependencies": {
73
- "@teambit/legacy": "1.0.488",
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
  },