@teambit/webpack 0.0.737 → 0.0.740
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/config/webpack.config.ts +0 -14
- package/dist/config/html.js.map +1 -1
- package/dist/config/webpack-fallbacks-aliases.js.map +1 -1
- package/dist/config/webpack-fallbacks-provide-plugin-config.js.map +1 -1
- package/dist/config/webpack-fallbacks.js.map +1 -1
- package/dist/config/webpack.config.d.ts +0 -1
- package/dist/config/webpack.config.js +1 -40
- package/dist/config/webpack.config.js.map +1 -1
- package/dist/config/webpack.dev.config.js.map +1 -1
- package/dist/events/index.js.map +1 -1
- package/dist/events/webpack-compilation-done-event.js.map +1 -1
- package/dist/events/webpack-compilation-started-event.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +22 -1
- package/dist/index.js.map +1 -1
- package/dist/plugins/webpack-bit-reporter-plugin.js.map +1 -1
- package/dist/transformers/get-exposed-rules.d.ts +3 -0
- package/dist/transformers/get-exposed-rules.js +74 -0
- package/dist/transformers/get-exposed-rules.js.map +1 -0
- package/dist/transformers/get-externals.d.ts +1 -0
- package/dist/transformers/get-externals.js +42 -0
- package/dist/transformers/get-externals.js.map +1 -0
- package/dist/transformers/index.d.ts +1 -0
- package/dist/transformers/index.js +28 -0
- package/dist/transformers/index.js.map +1 -1
- package/dist/transformers/inject-body.js.map +1 -1
- package/dist/transformers/resolve-peer.d.ts +14 -0
- package/dist/transformers/resolve-peer.js +110 -0
- package/dist/transformers/resolve-peer.js.map +1 -0
- package/dist/transformers/transformers.d.ts +16 -0
- package/dist/transformers/transformers.js +91 -0
- package/dist/transformers/transformers.js.map +1 -0
- package/dist/webpack.aspect.js.map +1 -1
- package/dist/webpack.bundler.js.map +1 -1
- package/dist/webpack.composition.js.map +1 -1
- package/dist/webpack.dev-server.js.map +1 -1
- package/dist/webpack.main.runtime.d.ts +3 -2
- package/dist/webpack.main.runtime.js +43 -5
- package/dist/webpack.main.runtime.js.map +1 -1
- package/package-tar/teambit-webpack-0.0.740.tgz +0 -0
- package/package.json +16 -11
- package/{preview-1652930732694.js → preview-1653449228788.js} +2 -2
- package/transformers/get-exposed-rules.ts +19 -0
- package/transformers/get-externals.ts +8 -0
- package/transformers/index.ts +5 -0
- package/transformers/resolve-peer.ts +63 -0
- package/transformers/transformers.ts +52 -0
- package/package-tar/teambit-webpack-0.0.737.tgz +0 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.resolvePeerToDirOrFile = resolvePeerToDirOrFile;
|
|
9
|
+
exports.resolvePeerToFile = resolvePeerToFile;
|
|
10
|
+
|
|
11
|
+
function _fs() {
|
|
12
|
+
const data = _interopRequireWildcard(require("fs"));
|
|
13
|
+
|
|
14
|
+
_fs = function () {
|
|
15
|
+
return data;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
return data;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function _enhancedResolve() {
|
|
22
|
+
const data = require("enhanced-resolve");
|
|
23
|
+
|
|
24
|
+
_enhancedResolve = function () {
|
|
25
|
+
return data;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
return data;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function _findRoot() {
|
|
32
|
+
const data = _interopRequireDefault(require("find-root"));
|
|
33
|
+
|
|
34
|
+
_findRoot = function () {
|
|
35
|
+
return data;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
return data;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
42
|
+
|
|
43
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Get the package folder, and in case it's not found get the resolved file path
|
|
47
|
+
* @param peerName
|
|
48
|
+
* @returns
|
|
49
|
+
*/
|
|
50
|
+
function resolvePeerToDirOrFile(peerName, logger, hostRootDir) {
|
|
51
|
+
let resolved;
|
|
52
|
+
|
|
53
|
+
try {
|
|
54
|
+
const options = {
|
|
55
|
+
// resolve the host root dir to its real location, as require.resolve is preserve symlink, so we get wrong result otherwise
|
|
56
|
+
paths: [process.cwd(), __dirname]
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
if (hostRootDir) {
|
|
60
|
+
// resolve the host root dir to its real location, as require.resolve is preserve symlink, so we get wrong result otherwise
|
|
61
|
+
options.paths.unshift((0, _fs().realpathSync)(hostRootDir));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
resolved = require.resolve(peerName, options);
|
|
65
|
+
const folder = (0, _findRoot().default)(resolved);
|
|
66
|
+
return folder;
|
|
67
|
+
} catch (e) {
|
|
68
|
+
if (resolved) {
|
|
69
|
+
logger.warn(`Couldn't find root dir for "${peerName}" from path "${resolved}" to add it as webpack alias`);
|
|
70
|
+
} else {
|
|
71
|
+
logger.warn(`Couldn't resolve "${peerName}" to add it as webpack alias`);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return resolved;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Make sure to resolve the peer path correctly
|
|
79
|
+
* we first resolve it to its dir (to be aligned with the aliases transformer)
|
|
80
|
+
* Then we resolve it to specific file, using enhanced resolve to make sure we resolve it using the correct main fields order
|
|
81
|
+
* @param peer
|
|
82
|
+
*/
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
function resolvePeerToFile(peer, logger, hostRootDir) {
|
|
86
|
+
const dirOrFile = resolvePeerToDirOrFile(peer, logger, hostRootDir);
|
|
87
|
+
if (!dirOrFile) return undefined;
|
|
88
|
+
const resolver = createResolver();
|
|
89
|
+
const resolvedFile = resolver.resolveSync({}, '', dirOrFile);
|
|
90
|
+
return resolvedFile;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Generate a resolver that will read first the module field then the main field
|
|
94
|
+
* to make it compatible with webpack behavior
|
|
95
|
+
* @returns
|
|
96
|
+
*/
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
function createResolver() {
|
|
100
|
+
// create a resolver
|
|
101
|
+
const myResolver = _enhancedResolve().ResolverFactory.createResolver({
|
|
102
|
+
fileSystem: new (_enhancedResolve().CachedInputFileSystem)(_fs().default, 4000),
|
|
103
|
+
useSyncFileSystemCalls: true,
|
|
104
|
+
mainFields: ['module', 'main']
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
return myResolver;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
//# sourceMappingURL=resolve-peer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["resolvePeerToDirOrFile","peerName","logger","hostRootDir","resolved","options","paths","process","cwd","__dirname","unshift","realpathSync","require","resolve","folder","findRoot","e","warn","resolvePeerToFile","peer","dirOrFile","undefined","resolver","createResolver","resolvedFile","resolveSync","myResolver","ResolverFactory","fileSystem","CachedInputFileSystem","fs","useSyncFileSystemCalls","mainFields"],"sources":["resolve-peer.ts"],"sourcesContent":["import fs, { realpathSync } from 'fs';\nimport { ResolverFactory, CachedInputFileSystem } from 'enhanced-resolve';\nimport findRoot from 'find-root';\nimport { Logger } from '@teambit/logger';\n\n/**\n * Get the package folder, and in case it's not found get the resolved file path\n * @param peerName\n * @returns\n */\nexport function resolvePeerToDirOrFile(peerName: string, logger: Logger, hostRootDir?: string): string | undefined {\n let resolved;\n try {\n const options = {\n // resolve the host root dir to its real location, as require.resolve is preserve symlink, so we get wrong result otherwise\n paths: [process.cwd(), __dirname],\n };\n if (hostRootDir) {\n // resolve the host root dir to its real location, as require.resolve is preserve symlink, so we get wrong result otherwise\n options.paths.unshift(realpathSync(hostRootDir));\n }\n\n resolved = require.resolve(peerName, options);\n const folder = findRoot(resolved);\n return folder;\n } catch (e) {\n if (resolved) {\n logger.warn(`Couldn't find root dir for \"${peerName}\" from path \"${resolved}\" to add it as webpack alias`);\n } else {\n logger.warn(`Couldn't resolve \"${peerName}\" to add it as webpack alias`);\n }\n return resolved;\n }\n}\n\n/**\n * Make sure to resolve the peer path correctly\n * we first resolve it to its dir (to be aligned with the aliases transformer)\n * Then we resolve it to specific file, using enhanced resolve to make sure we resolve it using the correct main fields order\n * @param peer\n */\nexport function resolvePeerToFile(peer: string, logger: Logger, hostRootDir?: string): string | undefined {\n const dirOrFile = resolvePeerToDirOrFile(peer, logger, hostRootDir);\n if (!dirOrFile) return undefined;\n const resolver = createResolver();\n const resolvedFile = resolver.resolveSync({}, '', dirOrFile);\n return resolvedFile;\n}\n\n/**\n * Generate a resolver that will read first the module field then the main field\n * to make it compatible with webpack behavior\n * @returns\n */\nfunction createResolver() {\n // create a resolver\n const myResolver = ResolverFactory.createResolver({\n fileSystem: new CachedInputFileSystem(fs, 4000),\n useSyncFileSystemCalls: true,\n mainFields: ['module', 'main'],\n });\n return myResolver;\n}\n"],"mappings":";;;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;;;;;AAGA;AACA;AACA;AACA;AACA;AACO,SAASA,sBAAT,CAAgCC,QAAhC,EAAkDC,MAAlD,EAAkEC,WAAlE,EAA4G;EACjH,IAAIC,QAAJ;;EACA,IAAI;IACF,MAAMC,OAAO,GAAG;MACd;MACAC,KAAK,EAAE,CAACC,OAAO,CAACC,GAAR,EAAD,EAAgBC,SAAhB;IAFO,CAAhB;;IAIA,IAAIN,WAAJ,EAAiB;MACf;MACAE,OAAO,CAACC,KAAR,CAAcI,OAAd,CAAsB,IAAAC,kBAAA,EAAaR,WAAb,CAAtB;IACD;;IAEDC,QAAQ,GAAGQ,OAAO,CAACC,OAAR,CAAgBZ,QAAhB,EAA0BI,OAA1B,CAAX;IACA,MAAMS,MAAM,GAAG,IAAAC,mBAAA,EAASX,QAAT,CAAf;IACA,OAAOU,MAAP;EACD,CAbD,CAaE,OAAOE,CAAP,EAAU;IACV,IAAIZ,QAAJ,EAAc;MACZF,MAAM,CAACe,IAAP,CAAa,+BAA8BhB,QAAS,gBAAeG,QAAS,8BAA5E;IACD,CAFD,MAEO;MACLF,MAAM,CAACe,IAAP,CAAa,qBAAoBhB,QAAS,8BAA1C;IACD;;IACD,OAAOG,QAAP;EACD;AACF;AAED;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASc,iBAAT,CAA2BC,IAA3B,EAAyCjB,MAAzC,EAAyDC,WAAzD,EAAmG;EACxG,MAAMiB,SAAS,GAAGpB,sBAAsB,CAACmB,IAAD,EAAOjB,MAAP,EAAeC,WAAf,CAAxC;EACA,IAAI,CAACiB,SAAL,EAAgB,OAAOC,SAAP;EAChB,MAAMC,QAAQ,GAAGC,cAAc,EAA/B;EACA,MAAMC,YAAY,GAAGF,QAAQ,CAACG,WAAT,CAAqB,EAArB,EAAyB,EAAzB,EAA6BL,SAA7B,CAArB;EACA,OAAOI,YAAP;AACD;AAED;AACA;AACA;AACA;AACA;;;AACA,SAASD,cAAT,GAA0B;EACxB;EACA,MAAMG,UAAU,GAAGC,kCAAA,CAAgBJ,cAAhB,CAA+B;IAChDK,UAAU,EAAE,KAAIC,wCAAJ,EAA0BC,aAA1B,EAA8B,IAA9B,CADoC;IAEhDC,sBAAsB,EAAE,IAFwB;IAGhDC,UAAU,EAAE,CAAC,QAAD,EAAW,MAAX;EAHoC,CAA/B,CAAnB;;EAKA,OAAON,UAAP;AACD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { WebpackConfigTransformContext } from '@teambit/webpack';
|
|
2
|
+
import { WebpackConfigMutator } from '@teambit/webpack.modules.config-mutator';
|
|
3
|
+
import { Logger } from '@teambit/logger';
|
|
4
|
+
export declare function generateAddAliasesFromPeersTransformer(peers: string[], logger: Logger): (config: WebpackConfigMutator, context: WebpackConfigTransformContext) => WebpackConfigMutator;
|
|
5
|
+
/**
|
|
6
|
+
* Generate a transformer that expose all the peers as global via the expose loader
|
|
7
|
+
* @param peers
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
export declare function generateExposePeersTransformer(peers: string[], logger: Logger): (config: WebpackConfigMutator, context: WebpackConfigTransformContext) => WebpackConfigMutator;
|
|
11
|
+
/**
|
|
12
|
+
* Generate a transformer that expose all the peers as global via the expose loader
|
|
13
|
+
* @param peers
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
export declare function generateExternalsTransformer(depes: string[]): (config: WebpackConfigMutator) => WebpackConfigMutator;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.generateAddAliasesFromPeersTransformer = generateAddAliasesFromPeersTransformer;
|
|
7
|
+
exports.generateExposePeersTransformer = generateExposePeersTransformer;
|
|
8
|
+
exports.generateExternalsTransformer = generateExternalsTransformer;
|
|
9
|
+
|
|
10
|
+
function _getExposedRules() {
|
|
11
|
+
const data = require("./get-exposed-rules");
|
|
12
|
+
|
|
13
|
+
_getExposedRules = function () {
|
|
14
|
+
return data;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
return data;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function _resolvePeer() {
|
|
21
|
+
const data = require("./resolve-peer");
|
|
22
|
+
|
|
23
|
+
_resolvePeer = function () {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
return data;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function _getExternals() {
|
|
31
|
+
const data = require("./get-externals");
|
|
32
|
+
|
|
33
|
+
_getExternals = function () {
|
|
34
|
+
return data;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
return data;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function generateAddAliasesFromPeersTransformer(peers, logger) {
|
|
41
|
+
return (config, context) => {
|
|
42
|
+
const peerAliases = peers.reduce((acc, peerName) => {
|
|
43
|
+
var _context$target;
|
|
44
|
+
|
|
45
|
+
// gets the correct module folder of the package.
|
|
46
|
+
// this allows us to resolve internal files, for example:
|
|
47
|
+
// node_modules/react-dom/test-utils
|
|
48
|
+
//
|
|
49
|
+
// we can't use require.resolve() because it resolves to a specific file.
|
|
50
|
+
// for example, if we used "react-dom": require.resolve("react-dom"),
|
|
51
|
+
// it would try to resolve "react-dom/test-utils" as:
|
|
52
|
+
// node_modules/react-dom/index.js/test-utils
|
|
53
|
+
acc[peerName] = (0, _resolvePeer().resolvePeerToDirOrFile)(peerName, logger, (_context$target = context.target) === null || _context$target === void 0 ? void 0 : _context$target.hostRootDir);
|
|
54
|
+
return acc;
|
|
55
|
+
}, {});
|
|
56
|
+
config.addAliases(peerAliases);
|
|
57
|
+
return config;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Generate a transformer that expose all the peers as global via the expose loader
|
|
62
|
+
* @param peers
|
|
63
|
+
* @returns
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
function generateExposePeersTransformer(peers, logger) {
|
|
68
|
+
return (config, context) => {
|
|
69
|
+
var _context$target2;
|
|
70
|
+
|
|
71
|
+
const exposedRules = (0, _getExposedRules().getExposedRules)(peers, logger, (_context$target2 = context.target) === null || _context$target2 === void 0 ? void 0 : _context$target2.hostRootDir);
|
|
72
|
+
config.addModuleRules(exposedRules);
|
|
73
|
+
return config;
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Generate a transformer that expose all the peers as global via the expose loader
|
|
78
|
+
* @param peers
|
|
79
|
+
* @returns
|
|
80
|
+
*/
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
function generateExternalsTransformer(depes) {
|
|
84
|
+
return config => {
|
|
85
|
+
const externals = (0, _getExternals().getExternals)(depes);
|
|
86
|
+
config.addExternals(externals);
|
|
87
|
+
return config;
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
//# sourceMappingURL=transformers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["generateAddAliasesFromPeersTransformer","peers","logger","config","context","peerAliases","reduce","acc","peerName","resolvePeerToDirOrFile","target","hostRootDir","addAliases","generateExposePeersTransformer","exposedRules","getExposedRules","addModuleRules","generateExternalsTransformer","depes","externals","getExternals","addExternals"],"sources":["transformers.ts"],"sourcesContent":["import { WebpackConfigTransformContext } from '@teambit/webpack';\nimport { WebpackConfigMutator } from '@teambit/webpack.modules.config-mutator';\nimport { Logger } from '@teambit/logger';\nimport { getExposedRules } from './get-exposed-rules';\nimport { resolvePeerToDirOrFile } from './resolve-peer';\nimport { getExternals } from './get-externals';\n\nexport function generateAddAliasesFromPeersTransformer(peers: string[], logger: Logger) {\n return (config: WebpackConfigMutator, context: WebpackConfigTransformContext): WebpackConfigMutator => {\n const peerAliases = peers.reduce((acc, peerName) => {\n // gets the correct module folder of the package.\n // this allows us to resolve internal files, for example:\n // node_modules/react-dom/test-utils\n //\n // we can't use require.resolve() because it resolves to a specific file.\n // for example, if we used \"react-dom\": require.resolve(\"react-dom\"),\n // it would try to resolve \"react-dom/test-utils\" as:\n // node_modules/react-dom/index.js/test-utils\n acc[peerName] = resolvePeerToDirOrFile(peerName, logger, context.target?.hostRootDir);\n return acc;\n }, {});\n\n config.addAliases(peerAliases);\n return config;\n };\n}\n\n/**\n * Generate a transformer that expose all the peers as global via the expose loader\n * @param peers\n * @returns\n */\nexport function generateExposePeersTransformer(peers: string[], logger: Logger) {\n return (config: WebpackConfigMutator, context: WebpackConfigTransformContext): WebpackConfigMutator => {\n const exposedRules = getExposedRules(peers, logger, context.target?.hostRootDir);\n config.addModuleRules(exposedRules);\n return config;\n };\n}\n\n/**\n * Generate a transformer that expose all the peers as global via the expose loader\n * @param peers\n * @returns\n */\nexport function generateExternalsTransformer(depes: string[]) {\n return (config: WebpackConfigMutator): WebpackConfigMutator => {\n const externals = getExternals(depes);\n config.addExternals(externals);\n return config;\n };\n}\n"],"mappings":";;;;;;;;;AAGA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,SAASA,sCAAT,CAAgDC,KAAhD,EAAiEC,MAAjE,EAAiF;EACtF,OAAO,CAACC,MAAD,EAA+BC,OAA/B,KAAgG;IACrG,MAAMC,WAAW,GAAGJ,KAAK,CAACK,MAAN,CAAa,CAACC,GAAD,EAAMC,QAAN,KAAmB;MAAA;;MAClD;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACAD,GAAG,CAACC,QAAD,CAAH,GAAgB,IAAAC,qCAAA,EAAuBD,QAAvB,EAAiCN,MAAjC,qBAAyCE,OAAO,CAACM,MAAjD,oDAAyC,gBAAgBC,WAAzD,CAAhB;MACA,OAAOJ,GAAP;IACD,CAXmB,EAWjB,EAXiB,CAApB;IAaAJ,MAAM,CAACS,UAAP,CAAkBP,WAAlB;IACA,OAAOF,MAAP;EACD,CAhBD;AAiBD;AAED;AACA;AACA;AACA;AACA;;;AACO,SAASU,8BAAT,CAAwCZ,KAAxC,EAAyDC,MAAzD,EAAyE;EAC9E,OAAO,CAACC,MAAD,EAA+BC,OAA/B,KAAgG;IAAA;;IACrG,MAAMU,YAAY,GAAG,IAAAC,kCAAA,EAAgBd,KAAhB,EAAuBC,MAAvB,sBAA+BE,OAAO,CAACM,MAAvC,qDAA+B,iBAAgBC,WAA/C,CAArB;IACAR,MAAM,CAACa,cAAP,CAAsBF,YAAtB;IACA,OAAOX,MAAP;EACD,CAJD;AAKD;AAED;AACA;AACA;AACA;AACA;;;AACO,SAASc,4BAAT,CAAsCC,KAAtC,EAAuD;EAC5D,OAAQf,MAAD,IAAwD;IAC7D,MAAMgB,SAAS,GAAG,IAAAC,4BAAA,EAAaF,KAAb,CAAlB;IACAf,MAAM,CAACkB,YAAP,CAAoBF,SAApB;IACA,OAAOhB,MAAP;EACD,CAJD;AAKD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["WebpackAspect","Aspect","create","id"],"sources":["webpack.aspect.ts"],"sourcesContent":["import { Aspect } from '@teambit/harmony';\n\nexport const WebpackAspect = Aspect.create({\n id: 'teambit.webpack/webpack',\n});\n"],"mappings":";;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,aAAa,GAAGC,iBAAA,CAAOC,MAAP,CAAc;EACzCC,EAAE,EAAE;AADqC,CAAd,CAAtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack.bundler.ts"],"names":["WebpackBundler","constructor","targets","configs","logger","webpack","metaData","run","startTime","Date","now","compilers","map","config","initiator","envId","initiatorMessage","envIdMessage","longProcessLogger","createLongProcessLogger","length","componentOutput","compiler","components","getComponents","outputPath","componentsLengthMessage","fullMessage","ids","component","id","toString","join","logProgress","debug","Promise","resolve","err","stats","error","errors","stack","BitError","info","toJson","all","entrypoints","warnings","assets","chunkGroupAuxiliary","relatedAssets","assetsMap","getAssets","entriesAssetsMap","getEntriesAssetsMap","Object","values","assetsByChunkName","getErrors","compilation","outputOptions","path","endTime","end","fieldsToShow","webpackError","lines","fieldName","undefined","errorMessage","reduce","acc","asset","name","size","compressedSize","getCompressedSize","entriesMap","keys","entries","forEach","entryVal","compressedAssetsSize","compressedAuxiliaryAssetsSize","auxiliaryAssets","related","gzipped","find","relatedAsset","type","substring","lastIndexOf","sep","target","targetCandidate","Error"],"mappings":"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","sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport type { Bundler, BundlerResult, Asset, Target, EntriesAssetsMap, BundlerContextMetaData } from '@teambit/bundler';\nimport type { Logger } from '@teambit/logger';\nimport { compact, isEmpty } from 'lodash';\nimport mapSeries from 'p-map-series';\nimport type { Compiler, Configuration, StatsCompilation, StatsAsset } from 'webpack';\nimport { sep } from 'path';\n\ntype AssetsMap = { [assetId: string]: Asset };\nexport class WebpackBundler implements Bundler {\n constructor(\n /**\n * targets to bundle.\n */\n private targets: Target[],\n\n /**\n * webpack configuration.\n */\n private configs: Configuration[],\n\n private logger: Logger,\n\n private webpack,\n\n private metaData?: BundlerContextMetaData | undefined\n ) {}\n\n async run(): Promise<BundlerResult[]> {\n const startTime = Date.now();\n const compilers = this.configs.map((config: any) => this.webpack(config));\n const initiator = this.metaData?.initiator;\n const envId = this.metaData?.envId;\n const initiatorMessage = initiator ? `process initiated by: ${initiator}.` : '';\n const envIdMessage = envId ? `config created by env: ${envId}.` : '';\n\n const longProcessLogger = this.logger.createLongProcessLogger('running Webpack bundler', compilers.length);\n const componentOutput = await mapSeries(compilers, (compiler: Compiler) => {\n const components = this.getComponents(compiler.outputPath);\n const componentsLengthMessage = `running on ${components.length} components`;\n const fullMessage = `${initiatorMessage} ${envIdMessage} ${componentsLengthMessage}`;\n const ids = components.map((component) => component.id.toString()).join(', ');\n longProcessLogger.logProgress(`${fullMessage}`);\n this.logger.debug(`${fullMessage}\\ncomponents ids: ${ids}`);\n return new Promise((resolve) => {\n // TODO: split to multiple processes to reduce time and configure concurrent builds.\n // @see https://github.com/trivago/parallel-webpack\n return compiler.run((err, stats) => {\n if (err) {\n this.logger.error('get error from webpack compiler, full error:', err);\n\n return resolve({\n errors: [`${err.toString()}\\n${err.stack}`],\n components,\n });\n }\n if (!stats) throw new BitError('unknown build error');\n // const info = stats.toJson();\n\n const info = stats.toJson({\n all: false,\n entrypoints: true,\n warnings: true,\n errors: true,\n assets: true,\n chunkGroupAuxiliary: true,\n relatedAssets: true,\n });\n const assetsMap = this.getAssets(info);\n const entriesAssetsMap = this.getEntriesAssetsMap(info, assetsMap);\n\n return resolve({\n assets: Object.values(assetsMap),\n assetsByChunkName: info.assetsByChunkName,\n entriesAssetsMap,\n errors: this.getErrors(info),\n outputPath: stats.compilation.outputOptions.path,\n components,\n warnings: info.warnings,\n startTime,\n endTime: Date.now(),\n });\n });\n });\n });\n longProcessLogger.end();\n return componentOutput as BundlerResult[];\n }\n\n private getErrors(stats: StatsCompilation): Error[] {\n if (!stats.errors) return [];\n const fieldsToShow = ['message', 'moduleId', 'moduleName', 'moduleIdentifier', 'loc'];\n return stats.errors.map((webpackError) => {\n const lines = fieldsToShow.map((fieldName) => {\n if (webpackError[fieldName]) {\n return `${fieldName}: ${webpackError[fieldName]}`;\n }\n return undefined;\n });\n const errorMessage = compact(lines).join('\\n');\n return new BitError(errorMessage);\n });\n }\n\n private getAssets(stats: StatsCompilation): AssetsMap {\n if (!stats.assets) return {};\n return stats.assets.reduce((acc, asset) => {\n acc[asset.name] = {\n name: asset.name,\n size: asset.size,\n compressedSize: this.getCompressedSize(asset),\n };\n return acc;\n }, {});\n }\n\n private getEntriesAssetsMap(stats: StatsCompilation, assetsMap: AssetsMap): EntriesAssetsMap {\n const entriesMap = stats.entrypoints;\n if (!entriesMap || !Object.keys(assetsMap).length) return {};\n Object.entries(entriesMap).forEach(([, entryVal]) => {\n let compressedAssetsSize = 0;\n let compressedAuxiliaryAssetsSize = 0;\n entryVal.assets?.forEach((asset) => {\n const compressedSize = assetsMap[asset.name]?.compressedSize;\n if (compressedSize) {\n // @ts-ignore\n asset.compressedSize = compressedSize;\n compressedAssetsSize += compressedSize;\n }\n });\n entryVal.auxiliaryAssets?.forEach((asset) => {\n const compressedSize = assetsMap[asset.name]?.compressedSize;\n if (compressedSize) {\n // @ts-ignore\n asset.compressedSize = compressedSize;\n compressedAuxiliaryAssetsSize += compressedSize;\n }\n });\n entryVal.compressedAssetsSize = compressedAssetsSize;\n entryVal.compressedAuxiliaryAssetsSize = compressedAuxiliaryAssetsSize;\n });\n return entriesMap as any as EntriesAssetsMap;\n }\n\n private getCompressedSize(asset: StatsAsset): number | undefined {\n if (!asset.related || isEmpty(asset.related)) return undefined;\n const gzipped = asset.related.find((relatedAsset) => {\n return relatedAsset.type === 'gzipped';\n });\n if (!gzipped) return undefined;\n return gzipped.size;\n }\n\n private getComponents(outputPath: string) {\n const path = outputPath.substring(0, outputPath.lastIndexOf(sep));\n const target = this.targets.find((targetCandidate) => path === targetCandidate.outputPath);\n\n if (!target) throw new Error(`Could not find component id for path \"${path}\"`);\n return target.components;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"names":["WebpackBundler","constructor","targets","configs","logger","webpack","metaData","run","startTime","Date","now","compilers","map","config","initiator","envId","initiatorMessage","envIdMessage","longProcessLogger","createLongProcessLogger","length","componentOutput","mapSeries","compiler","components","getComponents","outputPath","componentsLengthMessage","fullMessage","ids","component","id","toString","join","logProgress","debug","Promise","resolve","err","stats","error","errors","stack","BitError","info","toJson","all","entrypoints","warnings","assets","chunkGroupAuxiliary","relatedAssets","assetsMap","getAssets","entriesAssetsMap","getEntriesAssetsMap","Object","values","assetsByChunkName","getErrors","compilation","outputOptions","path","endTime","end","fieldsToShow","webpackError","lines","fieldName","undefined","errorMessage","compact","reduce","acc","asset","name","size","compressedSize","getCompressedSize","entriesMap","keys","entries","forEach","entryVal","compressedAssetsSize","compressedAuxiliaryAssetsSize","auxiliaryAssets","related","isEmpty","gzipped","find","relatedAsset","type","substring","lastIndexOf","sep","target","targetCandidate","Error"],"sources":["webpack.bundler.ts"],"sourcesContent":["import { BitError } from '@teambit/bit-error';\nimport type { Bundler, BundlerResult, Asset, Target, EntriesAssetsMap, BundlerContextMetaData } from '@teambit/bundler';\nimport type { Logger } from '@teambit/logger';\nimport { compact, isEmpty } from 'lodash';\nimport mapSeries from 'p-map-series';\nimport type { Compiler, Configuration, StatsCompilation, StatsAsset } from 'webpack';\nimport { sep } from 'path';\n\ntype AssetsMap = { [assetId: string]: Asset };\nexport class WebpackBundler implements Bundler {\n constructor(\n /**\n * targets to bundle.\n */\n private targets: Target[],\n\n /**\n * webpack configuration.\n */\n private configs: Configuration[],\n\n private logger: Logger,\n\n private webpack,\n\n private metaData?: BundlerContextMetaData | undefined\n ) {}\n\n async run(): Promise<BundlerResult[]> {\n const startTime = Date.now();\n const compilers = this.configs.map((config: any) => this.webpack(config));\n const initiator = this.metaData?.initiator;\n const envId = this.metaData?.envId;\n const initiatorMessage = initiator ? `process initiated by: ${initiator}.` : '';\n const envIdMessage = envId ? `config created by env: ${envId}.` : '';\n\n const longProcessLogger = this.logger.createLongProcessLogger('running Webpack bundler', compilers.length);\n const componentOutput = await mapSeries(compilers, (compiler: Compiler) => {\n const components = this.getComponents(compiler.outputPath);\n const componentsLengthMessage = `running on ${components.length} components`;\n const fullMessage = `${initiatorMessage} ${envIdMessage} ${componentsLengthMessage}`;\n const ids = components.map((component) => component.id.toString()).join(', ');\n longProcessLogger.logProgress(`${fullMessage}`);\n this.logger.debug(`${fullMessage}\\ncomponents ids: ${ids}`);\n return new Promise((resolve) => {\n // TODO: split to multiple processes to reduce time and configure concurrent builds.\n // @see https://github.com/trivago/parallel-webpack\n return compiler.run((err, stats) => {\n if (err) {\n this.logger.error('get error from webpack compiler, full error:', err);\n\n return resolve({\n errors: [`${err.toString()}\\n${err.stack}`],\n components,\n });\n }\n if (!stats) throw new BitError('unknown build error');\n // const info = stats.toJson();\n\n const info = stats.toJson({\n all: false,\n entrypoints: true,\n warnings: true,\n errors: true,\n assets: true,\n chunkGroupAuxiliary: true,\n relatedAssets: true,\n });\n const assetsMap = this.getAssets(info);\n const entriesAssetsMap = this.getEntriesAssetsMap(info, assetsMap);\n\n return resolve({\n assets: Object.values(assetsMap),\n assetsByChunkName: info.assetsByChunkName,\n entriesAssetsMap,\n errors: this.getErrors(info),\n outputPath: stats.compilation.outputOptions.path,\n components,\n warnings: info.warnings,\n startTime,\n endTime: Date.now(),\n });\n });\n });\n });\n longProcessLogger.end();\n return componentOutput as BundlerResult[];\n }\n\n private getErrors(stats: StatsCompilation): Error[] {\n if (!stats.errors) return [];\n const fieldsToShow = ['message', 'moduleId', 'moduleName', 'moduleIdentifier', 'loc'];\n return stats.errors.map((webpackError) => {\n const lines = fieldsToShow.map((fieldName) => {\n if (webpackError[fieldName]) {\n return `${fieldName}: ${webpackError[fieldName]}`;\n }\n return undefined;\n });\n const errorMessage = compact(lines).join('\\n');\n return new BitError(errorMessage);\n });\n }\n\n private getAssets(stats: StatsCompilation): AssetsMap {\n if (!stats.assets) return {};\n return stats.assets.reduce((acc, asset) => {\n acc[asset.name] = {\n name: asset.name,\n size: asset.size,\n compressedSize: this.getCompressedSize(asset),\n };\n return acc;\n }, {});\n }\n\n private getEntriesAssetsMap(stats: StatsCompilation, assetsMap: AssetsMap): EntriesAssetsMap {\n const entriesMap = stats.entrypoints;\n if (!entriesMap || !Object.keys(assetsMap).length) return {};\n Object.entries(entriesMap).forEach(([, entryVal]) => {\n let compressedAssetsSize = 0;\n let compressedAuxiliaryAssetsSize = 0;\n entryVal.assets?.forEach((asset) => {\n const compressedSize = assetsMap[asset.name]?.compressedSize;\n if (compressedSize) {\n // @ts-ignore\n asset.compressedSize = compressedSize;\n compressedAssetsSize += compressedSize;\n }\n });\n entryVal.auxiliaryAssets?.forEach((asset) => {\n const compressedSize = assetsMap[asset.name]?.compressedSize;\n if (compressedSize) {\n // @ts-ignore\n asset.compressedSize = compressedSize;\n compressedAuxiliaryAssetsSize += compressedSize;\n }\n });\n entryVal.compressedAssetsSize = compressedAssetsSize;\n entryVal.compressedAuxiliaryAssetsSize = compressedAuxiliaryAssetsSize;\n });\n return entriesMap as any as EntriesAssetsMap;\n }\n\n private getCompressedSize(asset: StatsAsset): number | undefined {\n if (!asset.related || isEmpty(asset.related)) return undefined;\n const gzipped = asset.related.find((relatedAsset) => {\n return relatedAsset.type === 'gzipped';\n });\n if (!gzipped) return undefined;\n return gzipped.size;\n }\n\n private getComponents(outputPath: string) {\n const path = outputPath.substring(0, outputPath.lastIndexOf(sep));\n const target = this.targets.find((targetCandidate) => path === targetCandidate.outputPath);\n\n if (!target) throw new Error(`Could not find component id for path \"${path}\"`);\n return target.components;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["Logo","height","display","justifyContent","width"],"sources":["webpack.composition.tsx"],"sourcesContent":["import React from 'react';\n\nexport const Logo = () => (\n <div style={{ height: '100%', display: 'flex', justifyContent: 'center' }}>\n <img style={{ width: 70 }} src=\"https://static.bit.dev/brands/logo-webpack.svg\" />\n </div>\n);\n"],"mappings":";;;;;;;;;AAAA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAEO,MAAMA,IAAI,GAAG,mBAClB;EAAK,KAAK,EAAE;IAAEC,MAAM,EAAE,MAAV;IAAkBC,OAAO,EAAE,MAA3B;IAAmCC,cAAc,EAAE;EAAnD;AAAZ,gBACE;EAAK,KAAK,EAAE;IAAEC,KAAK,EAAE;EAAT,CAAZ;EAA2B,GAAG,EAAC;AAA/B,EADF,CADK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["WebpackDevServer","constructor","config","webpack","WsDevServer","WebpackAspect","id","getCompiler","displayConfig","inspect","depth","listen","port","devServer","Error","addSignalListener","addDevServerEntrypoints","webpackDs","start","server","process","on","exit"],"sources":["webpack.dev-server.ts"],"sourcesContent":["import type { DevServer } from '@teambit/bundler';\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 constructor(\n private config: WebpackConfigWithDevServer,\n private webpack: typeof webpackCompiler,\n private WsDevServer: WDS\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 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":";;;;;;;;;;;;;;;;;;;;;AAIA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AACA;EAAA;;EAAA;IAAA;EAAA;;EAAA;AAAA;;AAMO,MAAMA,gBAAN,CAA4C;EACjDC,WAAW,CACDC,MADC,EAEDC,OAFC,EAGDC,WAHC,EAIT;IAAA,KAHQF,MAGR,GAHQA,MAGR;IAAA,KAFQC,OAER,GAFQA,OAER;IAAA,KADQC,WACR,GADQA,WACR;IAAA,4CAMGC,wBAAA,CAAcC,EANjB;IAAA,qDAQY,oBARZ;EAAE;;EAEIC,WAAW,GAAQ;IACzB,OAAO,KAAKJ,OAAL,CAAa,KAAKD,MAAlB,CAAP;EACD;;EAMDM,aAAa,GAAW;IACtB,OAAO,IAAAC,eAAA,EAAQ,KAAKP,MAAb,EAAqB;MAAEQ,KAAK,EAAE;IAAT,CAArB,CAAP;EACD;;EAEW,MAANC,MAAM,CAACC,IAAD,EAAgC;IAC1C,IAAI,CAAC,KAAKV,MAAL,CAAYW,SAAjB,EAA4B;MAC1B,MAAM,IAAIC,KAAJ,CAAU,6CAAV,CAAN;IACD,CAHyC,CAI1C;;;IACA,KAAKZ,MAAL,CAAYW,SAAZ,CAAsBD,IAAtB,GAA6BA,IAA7B,CAL0C,CAO1C;;IACA,KAAKG,iBAAL,GAR0C,CAU1C;;IACA,IAAI,OAAQ,KAAKX,WAAN,CAA0BY,uBAAjC,KAA6D,WAAjE,EAA8E;MAC5E;MACA,MAAMC,SAAS,GAAG,IAAK,KAAKb,WAAV,CAA8B,KAAKG,WAAL,EAA9B,EAAkD,KAAKL,MAAL,CAAYW,SAA9D,CAAlB;MACA,OAAOI,SAAS,CAACN,MAAV,CAAiBC,IAAjB,CAAP;IACD,CAfyC,CAiB1C;;;IACA,MAAMK,SAAc,GAAG,IAAI,KAAKb,WAAT,CAAqB,KAAKF,MAAL,CAAYW,SAAjC,EAA4C,KAAKN,WAAL,EAA5C,CAAvB;IACA,MAAMU,SAAS,CAACC,KAAV,EAAN;IAEA,OAAOD,SAAS,CAACE,MAAjB;EACD;;EAEOJ,iBAAiB,GAAG;IAC1BK,OAAO,CAACC,EAAR,CAAW,SAAX,EAAsB,MAAM;MAC1BD,OAAO,CAACE,IAAR;IACD,CAFD;IAIAF,OAAO,CAACC,EAAR,CAAW,QAAX,EAAqB,MAAM;MACzBD,OAAO,CAACE,IAAR;IACD,CAFD;EAGD;;AAnDgD"}
|
|
@@ -8,7 +8,7 @@ import { WebpackBundler } from './webpack.bundler';
|
|
|
8
8
|
export declare type WebpackConfigTransformContext = GlobalWebpackConfigTransformContext & {
|
|
9
9
|
target: Target;
|
|
10
10
|
};
|
|
11
|
-
export declare type WebpackConfigDevServerTransformContext = GlobalWebpackConfigTransformContext;
|
|
11
|
+
export declare type WebpackConfigDevServerTransformContext = GlobalWebpackConfigTransformContext & DevServerContext;
|
|
12
12
|
export declare type GlobalWebpackConfigTransformContext = {
|
|
13
13
|
mode: BundlerMode;
|
|
14
14
|
};
|
|
@@ -55,10 +55,11 @@ export declare class WebpackMain {
|
|
|
55
55
|
mergeConfig(target: any, source: any): any;
|
|
56
56
|
createBundler(context: BundlerContext, transformers?: WebpackConfigTransformer[], initialConfigs?: webpack.Configuration[], webpackInstance?: any): WebpackBundler;
|
|
57
57
|
private createConfigs;
|
|
58
|
+
private generateTransformers;
|
|
58
59
|
private createDevServerConfig;
|
|
59
60
|
static slots: never[];
|
|
60
61
|
static runtime: import("@teambit/harmony").RuntimeDefinition;
|
|
61
62
|
static dependencies: import("@teambit/harmony").Aspect[];
|
|
62
63
|
static provider([pubsub, workspace, bundler, logger]: [PubsubMain, Workspace, BundlerMain, LoggerMain]): Promise<WebpackMain>;
|
|
63
64
|
}
|
|
64
|
-
export declare function runTransformersWithContext(config: WebpackConfigMutator, transformers: (WebpackConfigTransformer | WebpackConfigDevServerTransformer)[] | undefined, context:
|
|
65
|
+
export declare function runTransformersWithContext(config: WebpackConfigMutator, transformers: (WebpackConfigTransformer | WebpackConfigDevServerTransformer)[] | undefined, context: any): WebpackConfigMutator;
|
|
@@ -112,6 +112,16 @@ function _webpackModules() {
|
|
|
112
112
|
return data;
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
+
function _transformers() {
|
|
116
|
+
const data = require("./transformers");
|
|
117
|
+
|
|
118
|
+
_transformers = function () {
|
|
119
|
+
return data;
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
return data;
|
|
123
|
+
}
|
|
124
|
+
|
|
115
125
|
function _webpackDev() {
|
|
116
126
|
const data = require("./config/webpack.dev.config");
|
|
117
127
|
|
|
@@ -193,10 +203,11 @@ class WebpackMain {
|
|
|
193
203
|
createDevServer(context, transformers = []) {
|
|
194
204
|
const config = this.createDevServerConfig(context.entry, this.workspace.path, context.id, context.rootPath, context.publicPath, context.title);
|
|
195
205
|
const configMutator = new (_webpackModules().WebpackConfigMutator)(config);
|
|
196
|
-
const transformerContext = {
|
|
206
|
+
const transformerContext = Object.assign(context, {
|
|
197
207
|
mode: 'dev'
|
|
198
|
-
};
|
|
199
|
-
const
|
|
208
|
+
});
|
|
209
|
+
const internalTransformers = this.generateTransformers(undefined, transformerContext);
|
|
210
|
+
const afterMutation = runTransformersWithContext(configMutator.clone(), [...internalTransformers, ...transformers], transformerContext); // @ts-ignore - fix this
|
|
200
211
|
|
|
201
212
|
return new (_webpack5().WebpackDevServer)(afterMutation.raw, _webpack().default, _webpackDevServer().default);
|
|
202
213
|
}
|
|
@@ -221,11 +232,37 @@ class WebpackMain {
|
|
|
221
232
|
const context = Object.assign({}, transformerContext, {
|
|
222
233
|
target
|
|
223
234
|
});
|
|
224
|
-
const
|
|
235
|
+
const internalTransformers = this.generateTransformers(context, undefined, target);
|
|
236
|
+
const afterMutation = runTransformersWithContext(configMutator.clone(), [...internalTransformers, ...transformers], context);
|
|
225
237
|
return afterMutation.raw;
|
|
226
238
|
});
|
|
227
239
|
}
|
|
228
240
|
|
|
241
|
+
generateTransformers(_bundlerContext, devServerContext, target) {
|
|
242
|
+
const transformers = []; // TODO: handle dev server
|
|
243
|
+
|
|
244
|
+
const hostDeps = (target === null || target === void 0 ? void 0 : target.hostDependencies) || (devServerContext === null || devServerContext === void 0 ? void 0 : devServerContext.hostDependencies);
|
|
245
|
+
|
|
246
|
+
if (hostDeps) {
|
|
247
|
+
if (target !== null && target !== void 0 && target.aliasHostDependencies || devServerContext !== null && devServerContext !== void 0 && devServerContext.aliasHostDependencies) {
|
|
248
|
+
const peerAliasesTransformer = (0, _transformers().generateAddAliasesFromPeersTransformer)(hostDeps, this.logger);
|
|
249
|
+
transformers.push(peerAliasesTransformer);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
if (target !== null && target !== void 0 && target.exposeHostDependencies || devServerContext !== null && devServerContext !== void 0 && devServerContext.exposeHostDependencies) {
|
|
253
|
+
const exposePeersTransformer = (0, _transformers().generateExposePeersTransformer)(hostDeps, this.logger);
|
|
254
|
+
transformers.push(exposePeersTransformer);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
if (target !== null && target !== void 0 && target.externalizeHostDependencies || devServerContext !== null && devServerContext !== void 0 && devServerContext.externalizeHostDependencies) {
|
|
258
|
+
const externalsTransformer = (0, _transformers().generateExternalsTransformer)(hostDeps);
|
|
259
|
+
transformers.push(externalsTransformer);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
return transformers;
|
|
264
|
+
}
|
|
265
|
+
|
|
229
266
|
createDevServerConfig(entry, rootPath, devServerID, publicRoot, publicPath, title) {
|
|
230
267
|
return (0, _webpackDev().configFactory)(devServerID, rootPath, entry, publicRoot, publicPath, this.pubsub, title);
|
|
231
268
|
}
|
|
@@ -244,7 +281,8 @@ exports.WebpackMain = WebpackMain;
|
|
|
244
281
|
|
|
245
282
|
_webpack3().WebpackAspect.addRuntime(WebpackMain);
|
|
246
283
|
|
|
247
|
-
function runTransformersWithContext(config, transformers = [], context
|
|
284
|
+
function runTransformersWithContext(config, transformers = [], // context: WebpackConfigTransformContext | WebpackConfigDevServerTransformContext
|
|
285
|
+
context) {
|
|
248
286
|
if (!Array.isArray(transformers)) return config;
|
|
249
287
|
const newConfig = transformers.reduce((acc, transformer) => {
|
|
250
288
|
// @ts-ignore
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack.main.runtime.ts"],"names":["WebpackMain","constructor","pubsub","workspace","bundler","logger","createDevServer","context","transformers","config","createDevServerConfig","entry","path","id","rootPath","publicPath","title","configMutator","WebpackConfigMutator","transformerContext","mode","afterMutation","runTransformersWithContext","clone","WebpackDevServer","raw","webpack","WsDevServer","mergeConfig","target","source","createBundler","initialConfigs","webpackInstance","configs","createConfigs","targets","baseConfigFactory","WebpackBundler","metaData","factory","bundlerContext","map","baseConfig","Object","assign","devServerID","publicRoot","provider","logPublisher","createLogger","WebpackAspect","MainRuntime","PubsubAspect","WorkspaceAspect","BundlerAspect","LoggerAspect","addRuntime","Array","isArray","newConfig","reduce","acc","transformer"],"mappings":"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","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';\nimport WsDevServer from 'webpack-dev-server';\nimport { WebpackConfigMutator } from '@teambit/webpack.modules.config-mutator';\n\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;\n\nexport type GlobalWebpackConfigTransformContext = {\n mode: BundlerMode;\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: GlobalWebpackConfigTransformContext = { mode: 'dev' };\n const afterMutation = runTransformersWithContext(configMutator.clone(), transformers, transformerContext);\n // @ts-ignore - fix this\n return new WebpackDevServer(afterMutation.raw, webpack, WsDevServer);\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 = { mode: 'prod' };\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 afterMutation = runTransformersWithContext(configMutator.clone(), transformers, context);\n return afterMutation.raw;\n });\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): 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"]}
|
|
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","WsDevServer","mergeConfig","target","source","merge","createBundler","initialConfigs","webpackInstance","configs","createConfigs","targets","baseConfigFactory","WebpackBundler","metaData","factory","bundlerContext","map","baseConfig","_bundlerContext","devServerContext","hostDeps","hostDependencies","aliasHostDependencies","peerAliasesTransformer","generateAddAliasesFromPeersTransformer","push","exposeHostDependencies","exposePeersTransformer","generateExposePeersTransformer","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';\nimport WsDevServer from 'webpack-dev-server';\nimport { WebpackConfigMutator } from '@teambit/webpack.modules.config-mutator';\n\nimport {\n generateAddAliasesFromPeersTransformer,\n generateExposePeersTransformer,\n generateExternalsTransformer,\n} 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\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, WsDevServer);\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 = { mode: 'prod' };\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?.exposeHostDependencies || devServerContext?.exposeHostDependencies) {\n const exposePeersTransformer = generateExposePeersTransformer(hostDeps, this.logger);\n transformers.push(exposePeersTransformer);\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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"}
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/webpack",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.740",
|
|
4
4
|
"homepage": "https://bit.dev/teambit/webpack/webpack",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.webpack",
|
|
8
8
|
"name": "webpack",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.740"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"webpack": "5.51.1",
|
|
@@ -14,12 +14,15 @@
|
|
|
14
14
|
"p-map-series": "2.1.0",
|
|
15
15
|
"webpack-dev-server": "4.1.0",
|
|
16
16
|
"webpack-merge": "5.8.0",
|
|
17
|
-
"camelcase": "6.2.0",
|
|
18
17
|
"compression-webpack-plugin": "9.2.0",
|
|
19
18
|
"html-webpack-plugin": "5.3.2",
|
|
20
19
|
"webpack-assets-manifest": "5.1.0",
|
|
21
20
|
"react-dev-utils": "11.0.4",
|
|
21
|
+
"camelcase": "6.2.0",
|
|
22
|
+
"expose-loader": "3.1.0",
|
|
22
23
|
"inject-body-webpack-plugin": "1.3.0",
|
|
24
|
+
"enhanced-resolve": "4.5.0",
|
|
25
|
+
"find-root": "1.1.0",
|
|
23
26
|
"vm-browserify": "1.1.2",
|
|
24
27
|
"util": "0.12.3",
|
|
25
28
|
"url": "0.11.0",
|
|
@@ -43,14 +46,15 @@
|
|
|
43
46
|
"@babel/runtime": "7.12.18",
|
|
44
47
|
"core-js": "^3.0.0",
|
|
45
48
|
"@teambit/harmony": "0.3.3",
|
|
46
|
-
"@teambit/webpack.modules.config-mutator": "0.0.
|
|
49
|
+
"@teambit/webpack.modules.config-mutator": "0.0.139",
|
|
47
50
|
"@teambit/bit-error": "0.0.394",
|
|
48
|
-
"@teambit/bundler": "0.0.
|
|
49
|
-
"@teambit/logger": "0.0.
|
|
50
|
-
"@teambit/cli": "0.0.
|
|
51
|
-
"@teambit/pubsub": "0.0.
|
|
52
|
-
"@teambit/workspace": "0.0.
|
|
53
|
-
"@teambit/webpack.modules.generate-
|
|
51
|
+
"@teambit/bundler": "0.0.740",
|
|
52
|
+
"@teambit/logger": "0.0.584",
|
|
53
|
+
"@teambit/cli": "0.0.492",
|
|
54
|
+
"@teambit/pubsub": "0.0.740",
|
|
55
|
+
"@teambit/workspace": "0.0.740",
|
|
56
|
+
"@teambit/webpack.modules.generate-expose-loaders": "0.0.3",
|
|
57
|
+
"@teambit/webpack.modules.generate-externals": "0.0.4"
|
|
54
58
|
},
|
|
55
59
|
"devDependencies": {
|
|
56
60
|
"@types/webpack": "5.28.0",
|
|
@@ -58,13 +62,14 @@
|
|
|
58
62
|
"@types/react": "^17.0.8",
|
|
59
63
|
"@types/webpack-dev-server": "4.0.3",
|
|
60
64
|
"@types/react-dev-utils": "9.0.10",
|
|
65
|
+
"@types/find-root": "1.1.2",
|
|
61
66
|
"@types/testing-library__jest-dom": "5.9.5",
|
|
62
67
|
"@types/jest": "^26.0.0",
|
|
63
68
|
"@types/react-dom": "^17.0.5",
|
|
64
69
|
"@types/node": "12.20.4"
|
|
65
70
|
},
|
|
66
71
|
"peerDependencies": {
|
|
67
|
-
"@teambit/legacy": "1.0.
|
|
72
|
+
"@teambit/legacy": "1.0.272",
|
|
68
73
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
69
74
|
"react": "^16.8.0 || ^17.0.0"
|
|
70
75
|
},
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.webpack_webpack@0.0.
|
|
2
|
-
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.webpack_webpack@0.0.
|
|
1
|
+
export const compositions = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.webpack_webpack@0.0.740/dist/webpack.composition.js')]
|
|
2
|
+
export const overview = [require('/home/circleci/Library/Caches/Bit/capsules/8891be5ad3d35bfc38b9cd90c0e05b598a5a55af/teambit.webpack_webpack@0.0.740/dist/webpack.docs.mdx')]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import camelcase from 'camelcase';
|
|
2
|
+
import 'expose-loader';
|
|
3
|
+
import { Logger } from '@teambit/logger';
|
|
4
|
+
import { generateExposeLoaders } from '@teambit/webpack.modules.generate-expose-loaders';
|
|
5
|
+
import { compact } from 'lodash';
|
|
6
|
+
import { resolvePeerToFile } from './resolve-peer';
|
|
7
|
+
|
|
8
|
+
export function getExposedRules(peers: string[], logger: Logger, hostRootDir?: string) {
|
|
9
|
+
const loaderPath = require.resolve('expose-loader');
|
|
10
|
+
const depsEntries = peers.map((peer) => {
|
|
11
|
+
const resolvedPath = resolvePeerToFile(peer, logger, hostRootDir);
|
|
12
|
+
if (!resolvedPath) return undefined;
|
|
13
|
+
return {
|
|
14
|
+
path: resolvedPath,
|
|
15
|
+
globalName: camelcase(peer.replace('@', '').replace('/', '-'), { pascalCase: true }),
|
|
16
|
+
};
|
|
17
|
+
});
|
|
18
|
+
return generateExposeLoaders(compact(depsEntries), { loaderPath });
|
|
19
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import camelcase from 'camelcase';
|
|
2
|
+
import { generateExternals } from '@teambit/webpack.modules.generate-externals';
|
|
3
|
+
|
|
4
|
+
export function getExternals(deps: string[]) {
|
|
5
|
+
return generateExternals(deps, {
|
|
6
|
+
transformName: (depName) => camelcase(depName.replace('@', '').replace('/', '-'), { pascalCase: true }),
|
|
7
|
+
});
|
|
8
|
+
}
|