@teambit/ui 0.0.566 → 0.0.567
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/ui-server.js
CHANGED
|
@@ -181,8 +181,7 @@ class UIServer {
|
|
|
181
181
|
|
|
182
182
|
async getDevConfig() {
|
|
183
183
|
const aspects = await this.uiRoot.resolveAspects(_ui().UIRuntime.name);
|
|
184
|
-
|
|
185
|
-
return (0, _webpackDev().devConfig)(this.uiRoot.path, [await this.ui.generateRoot(aspects, this.uiRootExtension)], this.uiRoot.name, aspectsPaths);
|
|
184
|
+
return (0, _webpackDev().devConfig)(this.uiRoot.path, [await this.ui.generateRoot(aspects, this.uiRootExtension)], this.uiRoot.name);
|
|
186
185
|
}
|
|
187
186
|
|
|
188
187
|
get whenReady() {
|
package/dist/ui-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ui-server.ts"],"names":["UIServer","constructor","graphql","expressExtension","ui","uiRoot","uiRootExtension","logger","publicDir","plugins","Promise","resolve","setReady","getName","name","port","_port","host","fullUrl","buildOptions","getDevConfig","aspects","resolveAspects","UIRuntime","aspectsPaths","map","aspect","aspectPath","path","generateRoot","whenReady","all","startPromise","x","start","portRange","app","createApp","root","server","createServer","configureProxy","use","express","static","index","Port","getPortFromRange","setupServerSideRendering","listen","info","getPluginsComponents","plugin","render","ssr","ssrMiddleware","title","warn","get","debug","proxServer","httpProxy","createProxyServer","on","e","error","message","proxyEntries","getProxyFromPlugins","req","socket","head","entry","find","proxy","context","some","item","url","ws","target","forEach","route","res","web","originalUrl","dev","devServerPort","selectPort","expressAppPort","config","compiler","devServerConfig","getDevServerConfig","devServer","WebpackDevServer","proxiesByPlugin","getProxy","gqlProxies","changeOrigin","concat","appPort","gqlPort","devServerConf","create","props","startPlugins"],"mappings":"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","sourcesContent":["import { flatten } from 'lodash';\nimport { ExpressMain } from '@teambit/express';\nimport { GraphqlMain } from '@teambit/graphql';\nimport { Logger } from '@teambit/logger';\nimport express, { Express } from 'express';\nimport fallback from 'express-history-api-fallback';\nimport { Port } from '@teambit/toolbox.network.get-port';\nimport { Server } from 'http';\nimport httpProxy from 'http-proxy';\nimport { join } from 'path';\nimport webpack from 'webpack';\nimport WebpackDevServer, { Configuration as WdsConfiguration } from 'webpack-dev-server';\nimport { createSsrMiddleware } from './ssr/render-middleware';\nimport { StartPlugin } from './start-plugin';\nimport { ProxyEntry, UIRoot } from './ui-root';\nimport { UIRuntime } from './ui.aspect';\nimport { UiMain } from './ui.main.runtime';\n\nimport { devConfig } from './webpack/webpack.dev.config';\n\nexport type UIServerProps = {\n graphql: GraphqlMain;\n express: ExpressMain;\n ui: UiMain;\n uiRoot: UIRoot;\n uiRootExtension: string;\n logger: Logger;\n publicDir: string;\n startPlugins: StartPlugin[];\n};\n\nexport type StartOptions = {\n /**\n * port range for the UI server to bind. default is a port range of 4000-4200.\n */\n portRange?: number[] | number;\n};\n\nexport class UIServer {\n constructor(\n private graphql: GraphqlMain,\n private expressExtension: ExpressMain,\n private ui: UiMain,\n private uiRoot: UIRoot,\n private uiRootExtension: string,\n private logger: Logger,\n private publicDir: string,\n private plugins: StartPlugin[]\n ) {}\n\n getName() {\n return this.uiRoot.name;\n }\n\n private _port = 0;\n\n get port() {\n return this._port;\n }\n\n /** the hostname for the server to listen at. Currently statically 'localhost' */\n get host() {\n return 'localhost';\n }\n\n /** the server listens at this url */\n get fullUrl() {\n const port = this.port !== 80 ? `:${this.port}` : '';\n return `http://${this.host}${port}`;\n }\n\n get buildOptions() {\n return this.uiRoot.buildOptions;\n }\n\n /**\n * get the webpack configuration of the UI server.\n */\n async getDevConfig() {\n const aspects = await this.uiRoot.resolveAspects(UIRuntime.name);\n const aspectsPaths = aspects.map((aspect) => aspect.aspectPath);\n\n return devConfig(\n this.uiRoot.path,\n [await this.ui.generateRoot(aspects, this.uiRootExtension)],\n this.uiRoot.name,\n aspectsPaths\n );\n }\n\n private setReady: () => void;\n private startPromise = new Promise<void>((resolve) => (this.setReady = resolve));\n get whenReady() {\n return Promise.all([this.startPromise, ...this.plugins.map((x) => x?.whenReady)]);\n }\n\n /**\n * start a UI server.\n */\n async start({ portRange }: StartOptions = {}) {\n const app = this.expressExtension.createApp();\n const publicDir = `/${this.publicDir}`;\n const root = join(this.uiRoot.path, publicDir);\n const server = await this.graphql.createServer({ app });\n\n // set up proxy, for things like preview, e.g. '/preview/teambit.react/react'\n await this.configureProxy(app, server);\n\n // pass through files from public /folder:\n // setting `index: false` so index.html will be served by the fallback() middleware\n app.use(express.static(root, { index: false }));\n\n const port = await Port.getPortFromRange(portRange || [3100, 3200]);\n\n await this.setupServerSideRendering({ root, port, app });\n\n // in any and all other cases, serve index.html.\n // No any other endpoints past this will execute\n app.use(fallback('index.html', { root }));\n\n server.listen(port);\n this._port = port;\n\n // important: we use the string of the following message for the http.e2e.ts. if you change the message,\n // please make sure you change the `HTTP_SERVER_READY_MSG` const.\n this.logger.info(`UI server of ${this.uiRootExtension} is listening to port ${port}`);\n\n this.setReady();\n }\n\n getPluginsComponents() {\n return this.plugins.map((plugin) => plugin.render);\n }\n\n private async setupServerSideRendering({ root, port, app }: { root: string; port: number; app: Express }) {\n if (!this.buildOptions?.ssr) return;\n\n const ssrMiddleware = await createSsrMiddleware({\n root,\n port,\n title: this.uiRoot.name,\n logger: this.logger,\n });\n\n if (!ssrMiddleware) {\n this.logger.warn('[ssr] middleware failed setup');\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n app.get('*', ssrMiddleware);\n this.logger.debug('[ssr] serving for \"*\"');\n }\n\n private async configureProxy(app: Express, server: Server) {\n const proxServer = httpProxy.createProxyServer();\n proxServer.on('error', (e) => this.logger.error(e.message));\n const proxyEntries = await this.getProxyFromPlugins();\n server.on('upgrade', function (req, socket, head) {\n const entry = proxyEntries.find((proxy) => proxy.context.some((item) => item === req.url));\n if (!entry) return;\n proxServer.ws(req, socket, head, {\n target: entry.target,\n });\n });\n\n proxyEntries.forEach((entry) => {\n entry.context.forEach((route) => {\n app.use(`${route}/*`, (req, res) => {\n proxServer.web(req, res, { ...entry, target: `${entry.target}/${req.originalUrl}` });\n });\n });\n });\n }\n\n /**\n * start a UI dev server.\n */\n async dev({ portRange }: StartOptions = {}) {\n const devServerPort = await this.selectPort(portRange);\n await this.start({ portRange: [4100, 4200] });\n const expressAppPort = this._port;\n\n const config = await this.getDevConfig();\n const compiler = webpack(config);\n const devServerConfig = await this.getDevServerConfig(devServerPort, expressAppPort, config.devServer);\n // @ts-ignore in the capsules it throws an error about compatibilities issues between webpack.compiler and webpackDevServer/webpack/compiler\n const devServer = new WebpackDevServer(devServerConfig, compiler);\n \n await devServer.start();\n this._port = devServerPort;\n return devServer;\n }\n\n private async selectPort(portRange?: number[] | number) {\n return Port.getPortFromRange(portRange || [3100, 3200]);\n }\n\n private async getProxyFromPlugins(): Promise<ProxyEntry[]> {\n const proxiesByPlugin = this.plugins.map((plugin) => {\n return plugin.getProxy ? plugin.getProxy() : [];\n });\n\n return flatten(await Promise.all(proxiesByPlugin));\n }\n\n private async getProxy(port = 4000) {\n const proxyEntries = await this.getProxyFromPlugins();\n\n const gqlProxies: ProxyEntry[] = [\n {\n context: ['/graphql', '/api'],\n target: `http://${this.host}:${port}`,\n changeOrigin: true,\n },\n {\n context: ['/subscriptions'],\n target: `ws://${this.host}:${port}`,\n ws: true,\n },\n ];\n\n return gqlProxies.concat(proxyEntries);\n }\n\n private async getDevServerConfig(\n appPort: number,\n gqlPort: number,\n config?: WdsConfiguration\n ): Promise<WdsConfiguration> {\n const proxy = await this.getProxy(gqlPort);\n const devServerConf = { ...config, proxy, port: appPort };\n\n return devServerConf;\n }\n\n static create(props: UIServerProps) {\n return new UIServer(\n props.graphql,\n props.express,\n props.ui,\n props.uiRoot,\n props.uiRootExtension,\n props.logger,\n props.publicDir,\n props.startPlugins\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["ui-server.ts"],"names":["UIServer","constructor","graphql","expressExtension","ui","uiRoot","uiRootExtension","logger","publicDir","plugins","Promise","resolve","setReady","getName","name","port","_port","host","fullUrl","buildOptions","getDevConfig","aspects","resolveAspects","UIRuntime","path","generateRoot","whenReady","all","startPromise","map","x","start","portRange","app","createApp","root","server","createServer","configureProxy","use","express","static","index","Port","getPortFromRange","setupServerSideRendering","listen","info","getPluginsComponents","plugin","render","ssr","ssrMiddleware","title","warn","get","debug","proxServer","httpProxy","createProxyServer","on","e","error","message","proxyEntries","getProxyFromPlugins","req","socket","head","entry","find","proxy","context","some","item","url","ws","target","forEach","route","res","web","originalUrl","dev","devServerPort","selectPort","expressAppPort","config","compiler","devServerConfig","getDevServerConfig","devServer","WebpackDevServer","proxiesByPlugin","getProxy","gqlProxies","changeOrigin","concat","appPort","gqlPort","devServerConf","create","props","startPlugins"],"mappings":"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","sourcesContent":["import { flatten } from 'lodash';\nimport { ExpressMain } from '@teambit/express';\nimport { GraphqlMain } from '@teambit/graphql';\nimport { Logger } from '@teambit/logger';\nimport express, { Express } from 'express';\nimport fallback from 'express-history-api-fallback';\nimport { Port } from '@teambit/toolbox.network.get-port';\nimport { Server } from 'http';\nimport httpProxy from 'http-proxy';\nimport { join } from 'path';\nimport webpack from 'webpack';\nimport WebpackDevServer, { Configuration as WdsConfiguration } from 'webpack-dev-server';\nimport { createSsrMiddleware } from './ssr/render-middleware';\nimport { StartPlugin } from './start-plugin';\nimport { ProxyEntry, UIRoot } from './ui-root';\nimport { UIRuntime } from './ui.aspect';\nimport { UiMain } from './ui.main.runtime';\n\nimport { devConfig } from './webpack/webpack.dev.config';\n\nexport type UIServerProps = {\n graphql: GraphqlMain;\n express: ExpressMain;\n ui: UiMain;\n uiRoot: UIRoot;\n uiRootExtension: string;\n logger: Logger;\n publicDir: string;\n startPlugins: StartPlugin[];\n};\n\nexport type StartOptions = {\n /**\n * port range for the UI server to bind. default is a port range of 4000-4200.\n */\n portRange?: number[] | number;\n};\n\nexport class UIServer {\n constructor(\n private graphql: GraphqlMain,\n private expressExtension: ExpressMain,\n private ui: UiMain,\n private uiRoot: UIRoot,\n private uiRootExtension: string,\n private logger: Logger,\n private publicDir: string,\n private plugins: StartPlugin[]\n ) {}\n\n getName() {\n return this.uiRoot.name;\n }\n\n private _port = 0;\n\n get port() {\n return this._port;\n }\n\n /** the hostname for the server to listen at. Currently statically 'localhost' */\n get host() {\n return 'localhost';\n }\n\n /** the server listens at this url */\n get fullUrl() {\n const port = this.port !== 80 ? `:${this.port}` : '';\n return `http://${this.host}${port}`;\n }\n\n get buildOptions() {\n return this.uiRoot.buildOptions;\n }\n\n /**\n * get the webpack configuration of the UI server.\n */\n async getDevConfig() {\n const aspects = await this.uiRoot.resolveAspects(UIRuntime.name);\n\n return devConfig(this.uiRoot.path, [await this.ui.generateRoot(aspects, this.uiRootExtension)], this.uiRoot.name);\n }\n\n private setReady: () => void;\n private startPromise = new Promise<void>((resolve) => (this.setReady = resolve));\n get whenReady() {\n return Promise.all([this.startPromise, ...this.plugins.map((x) => x?.whenReady)]);\n }\n\n /**\n * start a UI server.\n */\n async start({ portRange }: StartOptions = {}) {\n const app = this.expressExtension.createApp();\n const publicDir = `/${this.publicDir}`;\n const root = join(this.uiRoot.path, publicDir);\n const server = await this.graphql.createServer({ app });\n\n // set up proxy, for things like preview, e.g. '/preview/teambit.react/react'\n await this.configureProxy(app, server);\n\n // pass through files from public /folder:\n // setting `index: false` so index.html will be served by the fallback() middleware\n app.use(express.static(root, { index: false }));\n\n const port = await Port.getPortFromRange(portRange || [3100, 3200]);\n\n await this.setupServerSideRendering({ root, port, app });\n\n // in any and all other cases, serve index.html.\n // No any other endpoints past this will execute\n app.use(fallback('index.html', { root }));\n\n server.listen(port);\n this._port = port;\n\n // important: we use the string of the following message for the http.e2e.ts. if you change the message,\n // please make sure you change the `HTTP_SERVER_READY_MSG` const.\n this.logger.info(`UI server of ${this.uiRootExtension} is listening to port ${port}`);\n\n this.setReady();\n }\n\n getPluginsComponents() {\n return this.plugins.map((plugin) => plugin.render);\n }\n\n private async setupServerSideRendering({ root, port, app }: { root: string; port: number; app: Express }) {\n if (!this.buildOptions?.ssr) return;\n\n const ssrMiddleware = await createSsrMiddleware({\n root,\n port,\n title: this.uiRoot.name,\n logger: this.logger,\n });\n\n if (!ssrMiddleware) {\n this.logger.warn('[ssr] middleware failed setup');\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n app.get('*', ssrMiddleware);\n this.logger.debug('[ssr] serving for \"*\"');\n }\n\n private async configureProxy(app: Express, server: Server) {\n const proxServer = httpProxy.createProxyServer();\n proxServer.on('error', (e) => this.logger.error(e.message));\n const proxyEntries = await this.getProxyFromPlugins();\n server.on('upgrade', function (req, socket, head) {\n const entry = proxyEntries.find((proxy) => proxy.context.some((item) => item === req.url));\n if (!entry) return;\n proxServer.ws(req, socket, head, {\n target: entry.target,\n });\n });\n\n proxyEntries.forEach((entry) => {\n entry.context.forEach((route) => {\n app.use(`${route}/*`, (req, res) => {\n proxServer.web(req, res, { ...entry, target: `${entry.target}/${req.originalUrl}` });\n });\n });\n });\n }\n\n /**\n * start a UI dev server.\n */\n async dev({ portRange }: StartOptions = {}) {\n const devServerPort = await this.selectPort(portRange);\n await this.start({ portRange: [4100, 4200] });\n const expressAppPort = this._port;\n\n const config = await this.getDevConfig();\n const compiler = webpack(config);\n const devServerConfig = await this.getDevServerConfig(devServerPort, expressAppPort, config.devServer);\n // @ts-ignore in the capsules it throws an error about compatibilities issues between webpack.compiler and webpackDevServer/webpack/compiler\n const devServer = new WebpackDevServer(devServerConfig, compiler);\n\n await devServer.start();\n this._port = devServerPort;\n return devServer;\n }\n\n private async selectPort(portRange?: number[] | number) {\n return Port.getPortFromRange(portRange || [3100, 3200]);\n }\n\n private async getProxyFromPlugins(): Promise<ProxyEntry[]> {\n const proxiesByPlugin = this.plugins.map((plugin) => {\n return plugin.getProxy ? plugin.getProxy() : [];\n });\n\n return flatten(await Promise.all(proxiesByPlugin));\n }\n\n private async getProxy(port = 4000) {\n const proxyEntries = await this.getProxyFromPlugins();\n\n const gqlProxies: ProxyEntry[] = [\n {\n context: ['/graphql', '/api'],\n target: `http://${this.host}:${port}`,\n changeOrigin: true,\n },\n {\n context: ['/subscriptions'],\n target: `ws://${this.host}:${port}`,\n ws: true,\n },\n ];\n\n return gqlProxies.concat(proxyEntries);\n }\n\n private async getDevServerConfig(\n appPort: number,\n gqlPort: number,\n config?: WdsConfiguration\n ): Promise<WdsConfiguration> {\n const proxy = await this.getProxy(gqlPort);\n const devServerConf = { ...config, proxy, port: appPort };\n\n return devServerConf;\n }\n\n static create(props: UIServerProps) {\n return new UIServer(\n props.graphql,\n props.express,\n props.ui,\n props.uiRoot,\n props.uiRootExtension,\n props.logger,\n props.publicDir,\n props.startPlugins\n );\n }\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { WebpackConfigWithDevServer } from '@teambit/webpack';
|
|
2
|
-
export declare function devConfig(workspaceDir: any, entryFiles: any, title: any
|
|
2
|
+
export declare function devConfig(workspaceDir: any, entryFiles: any, title: any): WebpackConfigWithDevServer;
|
|
@@ -135,6 +135,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
135
135
|
* Webpack config for the bit ui
|
|
136
136
|
* i.e. `bit start --dev`,
|
|
137
137
|
*/
|
|
138
|
+
const matchNothingRegex = 'a^';
|
|
138
139
|
const clientHost = process.env.WDS_SOCKET_HOST;
|
|
139
140
|
const clientPath = process.env.WDS_SOCKET_PATH; // default is '/sockjs-node';
|
|
140
141
|
|
|
@@ -146,7 +147,7 @@ const port = process.env.WDS_SOCKET_PORT; // const reactRefreshRuntimeEntry = re
|
|
|
146
147
|
const publicUrlOrPath = (0, _getPublicUrlOrPath().default)(process.env.NODE_ENV === 'development', '/', '/public');
|
|
147
148
|
const moduleFileExtensions = ['web.mjs', 'mjs', 'web.js', 'js', 'web.ts', 'ts', 'web.tsx', 'tsx', 'json', 'web.jsx', 'jsx'];
|
|
148
149
|
|
|
149
|
-
function devConfig(workspaceDir, entryFiles, title
|
|
150
|
+
function devConfig(workspaceDir, entryFiles, title) {
|
|
150
151
|
const resolveWorkspacePath = relativePath => _path().default.resolve(workspaceDir, relativePath); // Host
|
|
151
152
|
|
|
152
153
|
|
|
@@ -286,19 +287,21 @@ function devConfig(workspaceDir, entryFiles, title, aspectPaths) {
|
|
|
286
287
|
descriptionData: {
|
|
287
288
|
componentId: value => !!value
|
|
288
289
|
},
|
|
289
|
-
use: [require.resolve('source-map-loader')]
|
|
290
|
+
use: [require.resolve('@pmmmwh/react-refresh-webpack-plugin/loader'), require.resolve('source-map-loader')]
|
|
290
291
|
}, {
|
|
291
292
|
test: /\.(js|jsx|tsx|ts)$/,
|
|
292
293
|
exclude: /node_modules/,
|
|
293
294
|
include: workspaceDir,
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
295
|
+
use: [require.resolve('@pmmmwh/react-refresh-webpack-plugin/loader'), {
|
|
296
|
+
loader: require.resolve('babel-loader'),
|
|
297
|
+
options: {
|
|
298
|
+
configFile: false,
|
|
299
|
+
babelrc: false,
|
|
300
|
+
presets: [// Preset includes JSX, TypeScript, and some ESnext features
|
|
301
|
+
require.resolve('babel-preset-react-app')],
|
|
302
|
+
plugins: [require.resolve('react-refresh/babel')]
|
|
303
|
+
}
|
|
304
|
+
}]
|
|
302
305
|
}, {
|
|
303
306
|
test: stylesRegexps().sassModuleRegex,
|
|
304
307
|
use: [require.resolve('style-loader'), {
|
|
@@ -364,12 +367,10 @@ function devConfig(workspaceDir, entryFiles, title, aspectPaths) {
|
|
|
364
367
|
}]
|
|
365
368
|
},
|
|
366
369
|
plugins: [new (_reactRefreshWebpackPlugin().default)({
|
|
367
|
-
|
|
368
|
-
// original
|
|
369
|
-
//
|
|
370
|
-
|
|
371
|
-
// A lookbehind assertion (`?<!`) has to be fixed width
|
|
372
|
-
/(?<!\.jsx)(?<!\.js)(?<!\.tsx)(?<!\.ts)$/i]
|
|
370
|
+
// we use '@pmmmwh/react-refresh-webpack-plugin/loader' directly where relevant.
|
|
371
|
+
// FYI, original defaults of the plugin are:
|
|
372
|
+
// include: /\.([cm]js|[jt]sx?|flow)$/i, exclude: /node_modules/,
|
|
373
|
+
include: matchNothingRegex
|
|
373
374
|
}), // Re-generate index.html with injected script tag.
|
|
374
375
|
// The injected script tag contains a src value of the
|
|
375
376
|
// filename output defined above.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack.dev.config.ts"],"names":["clientHost","process","env","WDS_SOCKET_HOST","clientPath","WDS_SOCKET_PATH","port","WDS_SOCKET_PORT","publicUrlOrPath","NODE_ENV","moduleFileExtensions","devConfig","workspaceDir","entryFiles","title","aspectPaths","resolveWorkspacePath","relativePath","path","resolve","host","HOST","mode","snapshot","managedPaths","devtool","entry","main","output","filename","pathinfo","publicPath","chunkFilename","devtoolModuleFilenameTemplate","info","absoluteResourcePath","infrastructureLogging","level","stats","devServer","allowedHosts","static","directory","staticOptions","serveIndex","watch","compress","hot","historyApiFallback","disableDotRule","index","client","webSocketURL","hostname","pathname","onBeforeSetupMiddleware","app","server","use","onAfterSetupMiddleware","devMiddleware","slice","extensions","map","ext","alias","react","require","fallback","fs","stream","module","unsafeCache","rules","test","fullySpecified","enforce","include","descriptionData","componentId","value","exclude","loader","options","configFile","babelrc","presets","plugins","stylesRegexps","sassModuleRegex","modules","localIdentName","sourceMap","sassNoModuleRegex","lessModuleRegex","lessNoModuleRegex","cssModuleRegex","cssNoModulesRegex","ReactRefreshWebpackPlugin","HtmlWebpackPlugin","inject","templateContent","chunks","ProvidePlugin"],"mappings":"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","sourcesContent":["import { ProvidePlugin } from 'webpack';\nimport * as stylesRegexps from '@teambit/webpack.modules.style-regexps';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport { WebpackConfigWithDevServer } from '@teambit/webpack';\n\nimport HtmlWebpackPlugin from 'html-webpack-plugin';\nimport ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-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 path from 'path';\nimport { html } from './html';\n\n/*\n * Webpack config for the bit ui\n * i.e. `bit start --dev`,\n */\n\nconst clientHost = process.env.WDS_SOCKET_HOST;\nconst clientPath = process.env.WDS_SOCKET_PATH; // default is '/sockjs-node';\nconst port = process.env.WDS_SOCKET_PORT;\n\n// const reactRefreshRuntimeEntry = require.resolve('react-refresh/runtime');\n// const reactRefreshWebpackPluginRuntimeEntry = require.resolve(\n// '@pmmmwh/react-refresh-webpack-plugin/lib/runtime/RefreshUtils'\n// );\n\nconst publicUrlOrPath = getPublicUrlOrPath(process.env.NODE_ENV === 'development', '/', '/public');\n\nconst moduleFileExtensions = [\n 'web.mjs',\n 'mjs',\n 'web.js',\n 'js',\n 'web.ts',\n 'ts',\n 'web.tsx',\n 'tsx',\n 'json',\n 'web.jsx',\n 'jsx',\n];\n\nexport function devConfig(workspaceDir, entryFiles, title, aspectPaths): WebpackConfigWithDevServer {\n const resolveWorkspacePath = (relativePath) => path.resolve(workspaceDir, relativePath);\n\n // Host\n const host = process.env.HOST || 'localhost';\n\n // Required for babel-preset-react-app\n process.env.NODE_ENV = 'development';\n\n return {\n // Environment mode\n mode: 'development',\n // improves HMR - assume node_modules might change\n snapshot: { managedPaths: [] },\n\n devtool: 'inline-source-map',\n\n // Entry point of app\n entry: {\n main: entryFiles,\n },\n\n output: {\n // Development filename output\n filename: 'static/js/[name].bundle.js',\n\n pathinfo: true,\n\n path: resolveWorkspacePath('/'),\n\n publicPath: publicUrlOrPath,\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: 'errors-only',\n\n devServer: {\n allowedHosts: 'all',\n\n static: [\n {\n directory: resolveWorkspacePath(publicUrlOrPath),\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: publicUrlOrPath,\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 host,\n\n historyApiFallback: {\n disableDotRule: true,\n index: publicUrlOrPath,\n },\n\n client: {\n webSocketURL: {\n hostname: clientHost,\n pathname: clientPath,\n port,\n },\n },\n\n onBeforeSetupMiddleware({ app, server }) {\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 app.use(evalSourceMapMiddleware(server));\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: publicUrlOrPath.slice(0, -1),\n },\n },\n\n resolve: {\n // These are the reasonable defaults supported by the Node ecosystem.\n // We also include JSX as a common component filename extension to support\n // some tools, although we do not recommend using it, see:\n // https://github.com/facebook/create-react-app/issues/290\n // `web` extension prefixes have been added for better support\n // for React Native Web.\n extensions: moduleFileExtensions.map((ext) => `.${ext}`),\n alias: {\n react: require.resolve('react'),\n 'react-dom/server': require.resolve('react-dom/server'),\n 'react-dom': require.resolve('react-dom'),\n // 'react-refresh/runtime': require.resolve('react-refresh/runtime'),\n },\n fallback: {\n fs: false,\n path: require.resolve('path-browserify'),\n stream: false,\n process: false,\n },\n },\n\n module: {\n // Webpack by default includes node_modules under its managed paths which cause the whole directory to be cached\n // Watch mode requires us to turn off unsafeCache as well\n // this de-optimizes the dev build but ensures hmr works when writing/linking into node modules.\n // However we do not lose the caching entirely like cache: false\n unsafeCache: false,\n rules: [\n {\n test: /\\.m?js/,\n resolve: {\n fullySpecified: false,\n },\n },\n {\n test: /\\.js$/,\n enforce: 'pre',\n include: /node_modules/,\n // only apply to packages with componentId in their package.json (ie. bit components)\n descriptionData: { componentId: (value) => !!value },\n use: [require.resolve('source-map-loader')],\n },\n {\n test: /\\.(js|jsx|tsx|ts)$/,\n exclude: /node_modules/,\n include: workspaceDir,\n loader: require.resolve('babel-loader'),\n options: {\n configFile: false,\n babelrc: false,\n presets: [\n // Preset includes JSX, TypeScript, and some ESnext features\n require.resolve('babel-preset-react-app'),\n ],\n plugins: [require.resolve('react-refresh/babel')],\n },\n },\n {\n test: stylesRegexps.sassModuleRegex,\n use: [\n require.resolve('style-loader'),\n {\n loader: require.resolve('css-loader'),\n options: {\n modules: {\n localIdentName: '[name]__[local]--[hash:base64:5]',\n },\n sourceMap: true,\n },\n },\n {\n loader: require.resolve('sass-loader'),\n options: {\n sourceMap: true,\n },\n },\n ],\n },\n {\n test: stylesRegexps.sassNoModuleRegex,\n use: [\n require.resolve('style-loader'),\n require.resolve('css-loader'),\n {\n loader: require.resolve('sass-loader'),\n options: {\n sourceMap: true,\n },\n },\n ],\n },\n {\n test: stylesRegexps.lessModuleRegex,\n use: [\n require.resolve('style-loader'),\n {\n loader: require.resolve('css-loader'),\n options: {\n modules: {\n localIdentName: '[name]__[local]--[hash:base64:5]',\n },\n sourceMap: true,\n },\n },\n {\n loader: require.resolve('less-loader'),\n options: {\n sourceMap: true,\n },\n },\n ],\n },\n {\n test: stylesRegexps.lessNoModuleRegex,\n use: [\n require.resolve('style-loader'),\n require.resolve('css-loader'),\n {\n loader: require.resolve('less-loader'),\n options: {\n sourceMap: true,\n },\n },\n ],\n },\n {\n test: stylesRegexps.cssModuleRegex,\n use: [\n require.resolve('style-loader'),\n {\n loader: require.resolve('css-loader'),\n options: {\n modules: {\n localIdentName: '[name]__[local]--[hash:base64:5]',\n },\n sourceMap: true,\n },\n },\n ],\n },\n {\n test: stylesRegexps.cssNoModulesRegex,\n use: [require.resolve('style-loader'), require.resolve('css-loader')],\n },\n ],\n },\n\n plugins: [\n new ReactRefreshWebpackPlugin({\n include: aspectPaths, // original default value was /\\.([cm]js|[jt]sx?|flow)$/i\n // replaces the default value of `/node_modules/`\n exclude: [\n /react-refresh-webpack-plugin/i,\n // file type filtering was done by `include`, so need to negative-filter them out here\n // A lookbehind assertion (`?<!`) has to be fixed width\n /(?<!\\.jsx)(?<!\\.js)(?<!\\.tsx)(?<!\\.ts)$/i,\n ],\n }),\n // Re-generate index.html with injected script tag.\n // The injected script tag contains a src value of the\n // filename output defined above.\n new HtmlWebpackPlugin({\n inject: true,\n templateContent: html(title || 'My component workspace'),\n chunks: ['main'],\n filename: 'index.html',\n }),\n new ProvidePlugin({\n process: require.resolve('process/browser'),\n }),\n ],\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["webpack.dev.config.ts"],"names":["matchNothingRegex","clientHost","process","env","WDS_SOCKET_HOST","clientPath","WDS_SOCKET_PATH","port","WDS_SOCKET_PORT","publicUrlOrPath","NODE_ENV","moduleFileExtensions","devConfig","workspaceDir","entryFiles","title","resolveWorkspacePath","relativePath","path","resolve","host","HOST","mode","snapshot","managedPaths","devtool","entry","main","output","filename","pathinfo","publicPath","chunkFilename","devtoolModuleFilenameTemplate","info","absoluteResourcePath","infrastructureLogging","level","stats","devServer","allowedHosts","static","directory","staticOptions","serveIndex","watch","compress","hot","historyApiFallback","disableDotRule","index","client","webSocketURL","hostname","pathname","onBeforeSetupMiddleware","app","server","use","onAfterSetupMiddleware","devMiddleware","slice","extensions","map","ext","alias","react","require","fallback","fs","stream","module","unsafeCache","rules","test","fullySpecified","enforce","include","descriptionData","componentId","value","exclude","loader","options","configFile","babelrc","presets","plugins","stylesRegexps","sassModuleRegex","modules","localIdentName","sourceMap","sassNoModuleRegex","lessModuleRegex","lessNoModuleRegex","cssModuleRegex","cssNoModulesRegex","ReactRefreshWebpackPlugin","HtmlWebpackPlugin","inject","templateContent","chunks","ProvidePlugin"],"mappings":"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","sourcesContent":["import { ProvidePlugin } from 'webpack';\nimport * as stylesRegexps from '@teambit/webpack.modules.style-regexps';\nimport { pathNormalizeToLinux } from '@teambit/legacy/dist/utils';\nimport { WebpackConfigWithDevServer } from '@teambit/webpack';\n\nimport HtmlWebpackPlugin from 'html-webpack-plugin';\nimport ReactRefreshWebpackPlugin from '@pmmmwh/react-refresh-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 path from 'path';\nimport { html } from './html';\n\n/*\n * Webpack config for the bit ui\n * i.e. `bit start --dev`,\n */\n\nconst matchNothingRegex = 'a^';\nconst clientHost = process.env.WDS_SOCKET_HOST;\nconst clientPath = process.env.WDS_SOCKET_PATH; // default is '/sockjs-node';\nconst port = process.env.WDS_SOCKET_PORT;\n\n// const reactRefreshRuntimeEntry = require.resolve('react-refresh/runtime');\n// const reactRefreshWebpackPluginRuntimeEntry = require.resolve(\n// '@pmmmwh/react-refresh-webpack-plugin/lib/runtime/RefreshUtils'\n// );\n\nconst publicUrlOrPath = getPublicUrlOrPath(process.env.NODE_ENV === 'development', '/', '/public');\n\nconst moduleFileExtensions = [\n 'web.mjs',\n 'mjs',\n 'web.js',\n 'js',\n 'web.ts',\n 'ts',\n 'web.tsx',\n 'tsx',\n 'json',\n 'web.jsx',\n 'jsx',\n];\n\nexport function devConfig(workspaceDir, entryFiles, title): WebpackConfigWithDevServer {\n const resolveWorkspacePath = (relativePath) => path.resolve(workspaceDir, relativePath);\n\n // Host\n const host = process.env.HOST || 'localhost';\n\n // Required for babel-preset-react-app\n process.env.NODE_ENV = 'development';\n\n return {\n // Environment mode\n mode: 'development',\n // improves HMR - assume node_modules might change\n snapshot: { managedPaths: [] },\n\n devtool: 'inline-source-map',\n\n // Entry point of app\n entry: {\n main: entryFiles,\n },\n\n output: {\n // Development filename output\n filename: 'static/js/[name].bundle.js',\n\n pathinfo: true,\n\n path: resolveWorkspacePath('/'),\n\n publicPath: publicUrlOrPath,\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: 'errors-only',\n\n devServer: {\n allowedHosts: 'all',\n\n static: [\n {\n directory: resolveWorkspacePath(publicUrlOrPath),\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: publicUrlOrPath,\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 host,\n\n historyApiFallback: {\n disableDotRule: true,\n index: publicUrlOrPath,\n },\n\n client: {\n webSocketURL: {\n hostname: clientHost,\n pathname: clientPath,\n port,\n },\n },\n\n onBeforeSetupMiddleware({ app, server }) {\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 app.use(evalSourceMapMiddleware(server));\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: publicUrlOrPath.slice(0, -1),\n },\n },\n\n resolve: {\n // These are the reasonable defaults supported by the Node ecosystem.\n // We also include JSX as a common component filename extension to support\n // some tools, although we do not recommend using it, see:\n // https://github.com/facebook/create-react-app/issues/290\n // `web` extension prefixes have been added for better support\n // for React Native Web.\n extensions: moduleFileExtensions.map((ext) => `.${ext}`),\n alias: {\n react: require.resolve('react'),\n 'react-dom/server': require.resolve('react-dom/server'),\n 'react-dom': require.resolve('react-dom'),\n // 'react-refresh/runtime': require.resolve('react-refresh/runtime'),\n },\n fallback: {\n fs: false,\n path: require.resolve('path-browserify'),\n stream: false,\n process: false,\n },\n },\n\n module: {\n // Webpack by default includes node_modules under its managed paths which cause the whole directory to be cached\n // Watch mode requires us to turn off unsafeCache as well\n // this de-optimizes the dev build but ensures hmr works when writing/linking into node modules.\n // However we do not lose the caching entirely like cache: false\n unsafeCache: false,\n rules: [\n {\n test: /\\.m?js/,\n resolve: {\n fullySpecified: false,\n },\n },\n {\n test: /\\.js$/,\n enforce: 'pre',\n include: /node_modules/,\n // only apply to packages with componentId in their package.json (ie. bit components)\n descriptionData: { componentId: (value) => !!value },\n use: [require.resolve('@pmmmwh/react-refresh-webpack-plugin/loader'), require.resolve('source-map-loader')],\n },\n {\n test: /\\.(js|jsx|tsx|ts)$/,\n exclude: /node_modules/,\n include: workspaceDir,\n use: [\n require.resolve('@pmmmwh/react-refresh-webpack-plugin/loader'),\n {\n loader: require.resolve('babel-loader'),\n options: {\n configFile: false,\n babelrc: false,\n presets: [\n // Preset includes JSX, TypeScript, and some ESnext features\n require.resolve('babel-preset-react-app'),\n ],\n plugins: [require.resolve('react-refresh/babel')],\n },\n },\n ],\n },\n {\n test: stylesRegexps.sassModuleRegex,\n use: [\n require.resolve('style-loader'),\n {\n loader: require.resolve('css-loader'),\n options: {\n modules: {\n localIdentName: '[name]__[local]--[hash:base64:5]',\n },\n sourceMap: true,\n },\n },\n {\n loader: require.resolve('sass-loader'),\n options: {\n sourceMap: true,\n },\n },\n ],\n },\n {\n test: stylesRegexps.sassNoModuleRegex,\n use: [\n require.resolve('style-loader'),\n require.resolve('css-loader'),\n {\n loader: require.resolve('sass-loader'),\n options: {\n sourceMap: true,\n },\n },\n ],\n },\n {\n test: stylesRegexps.lessModuleRegex,\n use: [\n require.resolve('style-loader'),\n {\n loader: require.resolve('css-loader'),\n options: {\n modules: {\n localIdentName: '[name]__[local]--[hash:base64:5]',\n },\n sourceMap: true,\n },\n },\n {\n loader: require.resolve('less-loader'),\n options: {\n sourceMap: true,\n },\n },\n ],\n },\n {\n test: stylesRegexps.lessNoModuleRegex,\n use: [\n require.resolve('style-loader'),\n require.resolve('css-loader'),\n {\n loader: require.resolve('less-loader'),\n options: {\n sourceMap: true,\n },\n },\n ],\n },\n {\n test: stylesRegexps.cssModuleRegex,\n use: [\n require.resolve('style-loader'),\n {\n loader: require.resolve('css-loader'),\n options: {\n modules: {\n localIdentName: '[name]__[local]--[hash:base64:5]',\n },\n sourceMap: true,\n },\n },\n ],\n },\n {\n test: stylesRegexps.cssNoModulesRegex,\n use: [require.resolve('style-loader'), require.resolve('css-loader')],\n },\n ],\n },\n\n plugins: [\n new ReactRefreshWebpackPlugin({\n // we use '@pmmmwh/react-refresh-webpack-plugin/loader' directly where relevant.\n // FYI, original defaults of the plugin are:\n // include: /\\.([cm]js|[jt]sx?|flow)$/i, exclude: /node_modules/,\n include: matchNothingRegex,\n }),\n // Re-generate index.html with injected script tag.\n // The injected script tag contains a src value of the\n // filename output defined above.\n new HtmlWebpackPlugin({\n inject: true,\n templateContent: html(title || 'My component workspace'),\n chunks: ['main'],\n filename: 'index.html',\n }),\n new ProvidePlugin({\n process: require.resolve('process/browser'),\n }),\n ],\n };\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/ui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.567",
|
|
4
4
|
"homepage": "https://bit.dev/teambit/ui-foundation/ui",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.ui-foundation",
|
|
8
8
|
"name": "ui",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.567"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"lodash": "4.17.21",
|
|
@@ -53,28 +53,28 @@
|
|
|
53
53
|
"@teambit/base-ui.loaders.loader-ribbon": "1.0.0",
|
|
54
54
|
"@teambit/base-ui.theme.fonts.roboto": "1.0.0",
|
|
55
55
|
"@teambit/base-ui.theme.theme-provider": "1.0.1",
|
|
56
|
-
"@teambit/aspect-loader": "0.0.
|
|
56
|
+
"@teambit/aspect-loader": "0.0.567",
|
|
57
57
|
"@teambit/toolbox.path.to-windows-compatible-path": "0.0.467",
|
|
58
58
|
"@teambit/ui-foundation.ui.hooks.use-data-query": "0.0.471",
|
|
59
|
-
"@teambit/logger": "0.0.
|
|
59
|
+
"@teambit/logger": "0.0.479",
|
|
60
60
|
"@teambit/cli": "0.0.393",
|
|
61
61
|
"@teambit/ui-foundation.cli.ui-server-console": "0.0.472",
|
|
62
|
-
"@teambit/bundler": "0.0.
|
|
63
|
-
"@teambit/component": "0.0.
|
|
64
|
-
"@teambit/express": "0.0.
|
|
65
|
-
"@teambit/graphql": "0.0.
|
|
62
|
+
"@teambit/bundler": "0.0.567",
|
|
63
|
+
"@teambit/component": "0.0.567",
|
|
64
|
+
"@teambit/express": "0.0.483",
|
|
65
|
+
"@teambit/graphql": "0.0.567",
|
|
66
66
|
"@teambit/toolbox.network.get-port": "0.0.97",
|
|
67
|
-
"@teambit/aspect": "0.0.
|
|
68
|
-
"@teambit/cache": "0.0.
|
|
69
|
-
"@teambit/pubsub": "0.0.
|
|
70
|
-
"@teambit/react-router": "0.0.
|
|
67
|
+
"@teambit/aspect": "0.0.567",
|
|
68
|
+
"@teambit/cache": "0.0.479",
|
|
69
|
+
"@teambit/pubsub": "0.0.567",
|
|
70
|
+
"@teambit/react-router": "0.0.567",
|
|
71
71
|
"@teambit/ui-foundation.ui.rendering.html": "0.0.53",
|
|
72
72
|
"@teambit/design.theme.icons-font": "1.0.2",
|
|
73
73
|
"@teambit/design.ui.tooltip": "0.0.352",
|
|
74
74
|
"@teambit/ui-foundation.ui.global-loader": "0.0.470",
|
|
75
75
|
"@teambit/webpack.modules.generate-style-loaders": "0.0.87",
|
|
76
76
|
"@teambit/webpack.modules.style-regexps": "0.0.116",
|
|
77
|
-
"@teambit/webpack": "0.0.
|
|
77
|
+
"@teambit/webpack": "0.0.567"
|
|
78
78
|
},
|
|
79
79
|
"devDependencies": {
|
|
80
80
|
"@types/react": "^17.0.8",
|