@teambit/webpack 1.0.1100 → 1.0.1102
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/plugins/webpack-bit-reporter-plugin.d.ts +1 -13
- package/dist/plugins/webpack-bit-reporter-plugin.js +9 -52
- package/dist/plugins/webpack-bit-reporter-plugin.js.map +1 -1
- package/dist/{preview-1786542728748.js → preview-1786718956243.js} +2 -2
- package/dist/transformers/resolve-peer.d.ts +2 -14
- package/dist/transformers/resolve-peer.js +15 -78
- package/dist/transformers/resolve-peer.js.map +1 -1
- package/dist/transformers/transformers.d.ts +3 -7
- package/dist/transformers/transformers.js +21 -51
- package/dist/transformers/transformers.js.map +1 -1
- package/package.json +15 -14
- package/plugins/webpack-bit-reporter-plugin.ts +1 -45
- package/transformers/resolve-peer.ts +2 -63
- package/transformers/transformers.ts +3 -42
- package/dist/transformers/get-externals.d.ts +0 -1
- package/dist/transformers/get-externals.js +0 -30
- package/dist/transformers/get-externals.js.map +0 -1
- package/transformers/get-externals.ts +0 -8
|
@@ -1,13 +1 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* Monitors Webpack's compilation, and updates progress to Bit
|
|
4
|
-
*/
|
|
5
|
-
export declare class WebpackBitReporterPlugin {
|
|
6
|
-
pubsub: any;
|
|
7
|
-
devServerID: string;
|
|
8
|
-
constructor({ options }: {
|
|
9
|
-
options: any;
|
|
10
|
-
});
|
|
11
|
-
apply(compiler: Compiler | any): void;
|
|
12
|
-
static readonly USE_DEV_SERVER_EVENTS = true;
|
|
13
|
-
}
|
|
1
|
+
export { WebpackBitReporterPlugin } from '@teambit/webpack.plugins.webpack-bit-reporter-plugin';
|
|
@@ -3,61 +3,18 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
function
|
|
15
|
-
const data = require("@teambit/preview.cli.dev-server-events-listener");
|
|
16
|
-
_previewCli = function () {
|
|
6
|
+
Object.defineProperty(exports, "WebpackBitReporterPlugin", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _webpackPlugins().WebpackBitReporterPlugin;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
function _webpackPlugins() {
|
|
13
|
+
const data = require("@teambit/webpack.plugins.webpack-bit-reporter-plugin");
|
|
14
|
+
_webpackPlugins = function () {
|
|
17
15
|
return data;
|
|
18
16
|
};
|
|
19
17
|
return data;
|
|
20
18
|
}
|
|
21
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
22
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
23
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
24
|
-
const PLUGIN_NAME = 'webpack-compiler-started-plugin';
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Monitors Webpack's compilation, and updates progress to Bit
|
|
28
|
-
*/
|
|
29
|
-
class WebpackBitReporterPlugin {
|
|
30
|
-
constructor({
|
|
31
|
-
options
|
|
32
|
-
}) {
|
|
33
|
-
// TODO: add plugin type from webpack and implement it
|
|
34
|
-
_defineProperty(this, "pubsub", void 0);
|
|
35
|
-
_defineProperty(this, "devServerID", void 0);
|
|
36
|
-
this.pubsub = options.pubsub;
|
|
37
|
-
this.devServerID = options.devServerID;
|
|
38
|
-
}
|
|
39
|
-
apply(compiler) {
|
|
40
|
-
// "Called before a new compilation is created."
|
|
41
|
-
compiler.hooks.compile.tap(PLUGIN_NAME, () => {
|
|
42
|
-
const event = new (_previewCli().DevServerCompilationStartedEvent)(Date.now(), this.devServerID);
|
|
43
|
-
this.pubsub.pub(_bundler().BundlerAspect.id, event);
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
// "Executed when the compilation has completed."
|
|
47
|
-
compiler.hooks.done.tap(PLUGIN_NAME, stats => {
|
|
48
|
-
const results = {
|
|
49
|
-
errors: stats.compilation.errors,
|
|
50
|
-
warnings: stats.compilation.warnings,
|
|
51
|
-
compiling: false
|
|
52
|
-
};
|
|
53
|
-
const event = new (_previewCli().DevServerCompilationDoneEvent)(Date.now(), this.devServerID, results);
|
|
54
|
-
this.pubsub.pub(_bundler().BundlerAspect.id, event);
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// flag to indicate whether the plugin uses the dev server events or the legacy webpack events
|
|
59
|
-
}
|
|
60
|
-
exports.WebpackBitReporterPlugin = WebpackBitReporterPlugin;
|
|
61
|
-
_defineProperty(WebpackBitReporterPlugin, "USE_DEV_SERVER_EVENTS", true);
|
|
62
19
|
|
|
63
20
|
//# sourceMappingURL=webpack-bit-reporter-plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_webpackPlugins","data","require"],"sources":["webpack-bit-reporter-plugin.ts"],"sourcesContent":["export { WebpackBitReporterPlugin } from '@teambit/webpack.plugins.webpack-bit-reporter-plugin';\n"],"mappings":";;;;;;;;;;;AAAA,SAAAA,gBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,eAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.webpack_webpack@1.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.webpack_webpack@1.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.webpack_webpack@1.0.1102/dist/webpack.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.webpack_webpack@1.0.1102/dist/webpack.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
|
@@ -1,14 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* Get the package folder, and in case it's not found get the resolved file path
|
|
4
|
-
* @param peerName
|
|
5
|
-
* @returns
|
|
6
|
-
*/
|
|
7
|
-
export declare function resolvePeerToDirOrFile(peerName: string, logger: Logger, hostRootDir?: string): string | undefined;
|
|
8
|
-
/**
|
|
9
|
-
* Make sure to resolve the peer path correctly
|
|
10
|
-
* we first resolve it to its dir (to be aligned with the aliases transformer)
|
|
11
|
-
* Then we resolve it to specific file, using enhanced resolve to make sure we resolve it using the correct main fields order
|
|
12
|
-
* @param peer
|
|
13
|
-
*/
|
|
14
|
-
export declare function resolvePeerToFile(peer: string, logger: Logger, hostRootDir?: string): string | undefined;
|
|
1
|
+
export { resolvePeerToDirOrFile, resolvePeerToFile } from '@teambit/webpack.modules.resolve-peer';
|
|
2
|
+
export type { ResolvePeerLogger } from '@teambit/webpack.modules.resolve-peer';
|
|
@@ -3,87 +3,24 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports
|
|
7
|
-
|
|
8
|
-
function
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
function _findRoot() {
|
|
23
|
-
const data = _interopRequireDefault(require("find-root"));
|
|
24
|
-
_findRoot = function () {
|
|
6
|
+
Object.defineProperty(exports, "resolvePeerToDirOrFile", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _webpackModules().resolvePeerToDirOrFile;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "resolvePeerToFile", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _webpackModules().resolvePeerToFile;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
function _webpackModules() {
|
|
19
|
+
const data = require("@teambit/webpack.modules.resolve-peer");
|
|
20
|
+
_webpackModules = function () {
|
|
25
21
|
return data;
|
|
26
22
|
};
|
|
27
23
|
return data;
|
|
28
24
|
}
|
|
29
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
30
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
31
|
-
/**
|
|
32
|
-
* Get the package folder, and in case it's not found get the resolved file path
|
|
33
|
-
* @param peerName
|
|
34
|
-
* @returns
|
|
35
|
-
*/
|
|
36
|
-
function resolvePeerToDirOrFile(peerName, logger, hostRootDir) {
|
|
37
|
-
let resolved;
|
|
38
|
-
try {
|
|
39
|
-
const options = {
|
|
40
|
-
// resolve the host root dir to its real location, as require.resolve is preserve symlink, so we get wrong result otherwise
|
|
41
|
-
paths: [process.cwd(), __dirname]
|
|
42
|
-
};
|
|
43
|
-
if (hostRootDir) {
|
|
44
|
-
// resolve the host root dir to its real location, as require.resolve is preserve symlink, so we get wrong result otherwise
|
|
45
|
-
options.paths.unshift((0, _fs().realpathSync)(hostRootDir));
|
|
46
|
-
}
|
|
47
|
-
resolved = require.resolve(peerName, options);
|
|
48
|
-
const folder = (0, _findRoot().default)(resolved);
|
|
49
|
-
return folder;
|
|
50
|
-
} catch {
|
|
51
|
-
if (resolved) {
|
|
52
|
-
logger.warn(`Couldn't find root dir for "${peerName}" from path "${resolved}" to add it as webpack alias`);
|
|
53
|
-
} else {
|
|
54
|
-
logger.warn(`Couldn't resolve "${peerName}" to add it as webpack alias`);
|
|
55
|
-
}
|
|
56
|
-
return resolved;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Make sure to resolve the peer path correctly
|
|
62
|
-
* we first resolve it to its dir (to be aligned with the aliases transformer)
|
|
63
|
-
* Then we resolve it to specific file, using enhanced resolve to make sure we resolve it using the correct main fields order
|
|
64
|
-
* @param peer
|
|
65
|
-
*/
|
|
66
|
-
function resolvePeerToFile(peer, logger, hostRootDir) {
|
|
67
|
-
const dirOrFile = resolvePeerToDirOrFile(peer, logger, hostRootDir);
|
|
68
|
-
if (!dirOrFile) return undefined;
|
|
69
|
-
const resolver = createResolver();
|
|
70
|
-
const resolvedFile = resolver.resolveSync({}, '', dirOrFile);
|
|
71
|
-
return resolvedFile;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Generate a resolver that will read first the module field then the main field
|
|
76
|
-
* to make it compatible with webpack behavior
|
|
77
|
-
* @returns
|
|
78
|
-
*/
|
|
79
|
-
function createResolver() {
|
|
80
|
-
// create a resolver
|
|
81
|
-
const myResolver = _enhancedResolve().ResolverFactory.createResolver({
|
|
82
|
-
fileSystem: new (_enhancedResolve().CachedInputFileSystem)(_fs().default, 4000),
|
|
83
|
-
useSyncFileSystemCalls: true,
|
|
84
|
-
mainFields: ['browser', 'module', 'main']
|
|
85
|
-
});
|
|
86
|
-
return myResolver;
|
|
87
|
-
}
|
|
88
25
|
|
|
89
26
|
//# sourceMappingURL=resolve-peer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_webpackModules","data","require"],"sources":["resolve-peer.ts"],"sourcesContent":["export { resolvePeerToDirOrFile, resolvePeerToFile } from '@teambit/webpack.modules.resolve-peer';\nexport type { ResolvePeerLogger } from '@teambit/webpack.modules.resolve-peer';\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,SAAAA,gBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,eAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA","ignoreList":[]}
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import type { WebpackConfigMutator } from '@teambit/webpack.modules.config-mutator';
|
|
2
2
|
import type { Logger } from '@teambit/logger';
|
|
3
|
+
import { generateAddAliasesFromPeersTransformer } from '@teambit/webpack.transformers.generate-add-aliases-from-peers';
|
|
4
|
+
import { generateExternalsTransformer } from '@teambit/webpack.transformers.generate-externals';
|
|
3
5
|
import type { WebpackConfigTransformContext } from '../webpack.main.runtime';
|
|
4
|
-
export
|
|
6
|
+
export { generateAddAliasesFromPeersTransformer, generateExternalsTransformer };
|
|
5
7
|
/**
|
|
6
8
|
* Generate a transformer that expose all the peers as global via the expose loader
|
|
7
9
|
* @param peers
|
|
8
10
|
* @returns
|
|
9
11
|
*/
|
|
10
12
|
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;
|
|
@@ -3,57 +3,40 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports
|
|
6
|
+
Object.defineProperty(exports, "generateAddAliasesFromPeersTransformer", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _webpackTransformers().generateAddAliasesFromPeersTransformer;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
7
12
|
exports.generateExposePeersTransformer = generateExposePeersTransformer;
|
|
8
|
-
exports
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
13
|
+
Object.defineProperty(exports, "generateExternalsTransformer", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () {
|
|
16
|
+
return _webpackTransformers2().generateExternalsTransformer;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
function _webpackTransformers() {
|
|
20
|
+
const data = require("@teambit/webpack.transformers.generate-add-aliases-from-peers");
|
|
21
|
+
_webpackTransformers = function () {
|
|
12
22
|
return data;
|
|
13
23
|
};
|
|
14
24
|
return data;
|
|
15
25
|
}
|
|
16
|
-
function
|
|
17
|
-
const data = require("
|
|
18
|
-
|
|
26
|
+
function _webpackTransformers2() {
|
|
27
|
+
const data = require("@teambit/webpack.transformers.generate-externals");
|
|
28
|
+
_webpackTransformers2 = function () {
|
|
19
29
|
return data;
|
|
20
30
|
};
|
|
21
31
|
return data;
|
|
22
32
|
}
|
|
23
|
-
function
|
|
24
|
-
const data = require("./get-
|
|
25
|
-
|
|
33
|
+
function _getExposedRules() {
|
|
34
|
+
const data = require("./get-exposed-rules");
|
|
35
|
+
_getExposedRules = function () {
|
|
26
36
|
return data;
|
|
27
37
|
};
|
|
28
38
|
return data;
|
|
29
39
|
}
|
|
30
|
-
function generateAddAliasesFromPeersTransformer(peers, logger) {
|
|
31
|
-
return (config, context) => {
|
|
32
|
-
const hostRootDir = context.target?.hostRootDir || context.hostRootDir;
|
|
33
|
-
const peerAliases = peers.reduce((acc, peerName) => {
|
|
34
|
-
// gets the correct module folder of the package.
|
|
35
|
-
// this allows us to resolve internal files, for example:
|
|
36
|
-
// node_modules/react-dom/test-utils
|
|
37
|
-
//
|
|
38
|
-
// we can't use require.resolve() because it resolves to a specific file.
|
|
39
|
-
// for example, if we used "react-dom": require.resolve("react-dom"),
|
|
40
|
-
// it would try to resolve "react-dom/test-utils" as:
|
|
41
|
-
// node_modules/react-dom/index.js/test-utils
|
|
42
|
-
const resolved = (0, _resolvePeer().resolvePeerToDirOrFile)(peerName, logger, hostRootDir);
|
|
43
|
-
// Sometime there are packages that only hold icons for example, so there is no main property in their package.json
|
|
44
|
-
// so they can't be resolved.
|
|
45
|
-
// in such cases do not add them to the aliases.
|
|
46
|
-
// We already log that cases in the resolvePeerToDirOrFile function.
|
|
47
|
-
if (resolved) {
|
|
48
|
-
acc[peerName] = resolved;
|
|
49
|
-
}
|
|
50
|
-
return acc;
|
|
51
|
-
}, {});
|
|
52
|
-
config.addAliases(peerAliases);
|
|
53
|
-
return config;
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
|
|
57
40
|
// [dead code] - no longer used
|
|
58
41
|
/**
|
|
59
42
|
* Generate a transformer that expose all the peers as global via the expose loader
|
|
@@ -69,17 +52,4 @@ function generateExposePeersTransformer(peers, logger) {
|
|
|
69
52
|
};
|
|
70
53
|
}
|
|
71
54
|
|
|
72
|
-
/**
|
|
73
|
-
* Generate a transformer that expose all the peers as global via the expose loader
|
|
74
|
-
* @param peers
|
|
75
|
-
* @returns
|
|
76
|
-
*/
|
|
77
|
-
function generateExternalsTransformer(depes) {
|
|
78
|
-
return config => {
|
|
79
|
-
const externals = (0, _getExternals().getExternals)(depes);
|
|
80
|
-
config.addExternals(externals);
|
|
81
|
-
return config;
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
|
|
85
55
|
//# sourceMappingURL=transformers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_webpackTransformers","data","require","_webpackTransformers2","_getExposedRules","generateExposePeersTransformer","peers","logger","config","context","hostRootDir","target","exposedRules","getExposedRules","addModuleRules"],"sources":["transformers.ts"],"sourcesContent":["import type { WebpackConfigMutator } from '@teambit/webpack.modules.config-mutator';\nimport type { Logger } from '@teambit/logger';\nimport { generateAddAliasesFromPeersTransformer } from '@teambit/webpack.transformers.generate-add-aliases-from-peers';\nimport { generateExternalsTransformer } from '@teambit/webpack.transformers.generate-externals';\nimport { getExposedRules } from './get-exposed-rules';\nimport type { WebpackConfigTransformContext } from '../webpack.main.runtime';\n\nexport { generateAddAliasesFromPeersTransformer, generateExternalsTransformer };\n\n// [dead code] - no longer used\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 hostRootDir = context.target?.hostRootDir || context.hostRootDir;\n const exposedRules = getExposedRules(peers, logger, hostRootDir);\n config.addModuleRules(exposedRules);\n return config;\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAEA,SAAAA,qBAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,oBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,sBAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,qBAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,iBAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,gBAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,8BAA8BA,CAACC,KAAe,EAAEC,MAAc,EAAE;EAC9E,OAAO,CAACC,MAA4B,EAAEC,OAAsC,KAA2B;IACrG,MAAMC,WAAW,GAAGD,OAAO,CAACE,MAAM,EAAED,WAAW,IAAID,OAAO,CAACC,WAAW;IACtE,MAAME,YAAY,GAAG,IAAAC,kCAAe,EAACP,KAAK,EAAEC,MAAM,EAAEG,WAAW,CAAC;IAChEF,MAAM,CAACM,cAAc,CAACF,YAAY,CAAC;IACnC,OAAOJ,MAAM;EACf,CAAC;AACH","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/webpack",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1102",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/webpack/webpack",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.webpack",
|
|
8
8
|
"name": "webpack",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.1102"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"webpack": "5.97.1",
|
|
@@ -15,6 +15,9 @@
|
|
|
15
15
|
"find-root": "1.1.0",
|
|
16
16
|
"webpack-dev-server": "4.15.2",
|
|
17
17
|
"webpack-merge": "5.8.0",
|
|
18
|
+
"camelcase": "6.2.0",
|
|
19
|
+
"expose-loader": "3.1.0",
|
|
20
|
+
"inject-body-webpack-plugin": "1.3.0",
|
|
18
21
|
"buffer": "6.0.3",
|
|
19
22
|
"process": "0.11.10",
|
|
20
23
|
"assert": "^2.1.0",
|
|
@@ -40,23 +43,21 @@
|
|
|
40
43
|
"html-webpack-plugin": "5.3.2",
|
|
41
44
|
"webpack-assets-manifest": "5.1.0",
|
|
42
45
|
"react-dev-utils": "12.0.1",
|
|
43
|
-
"camelcase": "6.2.0",
|
|
44
|
-
"expose-loader": "3.1.0",
|
|
45
|
-
"inject-body-webpack-plugin": "1.3.0",
|
|
46
|
-
"enhanced-resolve": "4.5.0",
|
|
47
46
|
"@teambit/webpack.modules.config-mutator": "0.0.181",
|
|
48
47
|
"@teambit/harmony": "0.4.12",
|
|
49
48
|
"@teambit/bit-error": "0.0.404",
|
|
50
|
-
"@teambit/toolbox.path.path": "0.0.21",
|
|
51
|
-
"@teambit/preview.cli.dev-server-events-listener": "0.0.1",
|
|
52
49
|
"@teambit/webpack.modules.generate-expose-loaders": "0.0.42",
|
|
53
|
-
"@teambit/webpack.modules.generate-externals": "0.0.43",
|
|
54
50
|
"@teambit/webpack.plugins.inject-head-webpack-plugin": "0.0.35",
|
|
55
|
-
"@teambit/
|
|
56
|
-
"@teambit/
|
|
57
|
-
"@teambit/
|
|
58
|
-
"@teambit/
|
|
59
|
-
"@teambit/
|
|
51
|
+
"@teambit/webpack.modules.resolve-peer": "0.1.0",
|
|
52
|
+
"@teambit/webpack.transformers.generate-add-aliases-from-peers": "0.1.0",
|
|
53
|
+
"@teambit/webpack.transformers.generate-externals": "0.1.0",
|
|
54
|
+
"@teambit/webpack.plugins.webpack-bit-reporter-plugin": "0.1.0",
|
|
55
|
+
"@teambit/toolbox.path.path": "0.0.21",
|
|
56
|
+
"@teambit/bundler": "1.0.1102",
|
|
57
|
+
"@teambit/logger": "0.0.1460",
|
|
58
|
+
"@teambit/cli": "0.0.1367",
|
|
59
|
+
"@teambit/pubsub": "1.0.1102",
|
|
60
|
+
"@teambit/workspace": "1.0.1102"
|
|
60
61
|
},
|
|
61
62
|
"devDependencies": {
|
|
62
63
|
"@types/webpack": "5.28.5",
|
|
@@ -1,45 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { BundlerAspect } from '@teambit/bundler';
|
|
4
|
-
import {
|
|
5
|
-
DevServerCompilationStartedEvent,
|
|
6
|
-
DevServerCompilationDoneEvent,
|
|
7
|
-
} from '@teambit/preview.cli.dev-server-events-listener';
|
|
8
|
-
|
|
9
|
-
const PLUGIN_NAME = 'webpack-compiler-started-plugin';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Monitors Webpack's compilation, and updates progress to Bit
|
|
13
|
-
*/
|
|
14
|
-
export class WebpackBitReporterPlugin {
|
|
15
|
-
// TODO: add plugin type from webpack and implement it
|
|
16
|
-
pubsub: any;
|
|
17
|
-
devServerID: string;
|
|
18
|
-
|
|
19
|
-
constructor({ options }) {
|
|
20
|
-
this.pubsub = options.pubsub;
|
|
21
|
-
this.devServerID = options.devServerID;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
apply(compiler: Compiler | any) {
|
|
25
|
-
// "Called before a new compilation is created."
|
|
26
|
-
compiler.hooks.compile.tap(PLUGIN_NAME, () => {
|
|
27
|
-
const event = new DevServerCompilationStartedEvent(Date.now(), this.devServerID);
|
|
28
|
-
this.pubsub.pub(BundlerAspect.id, event);
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
// "Executed when the compilation has completed."
|
|
32
|
-
compiler.hooks.done.tap(PLUGIN_NAME, (stats: Stats) => {
|
|
33
|
-
const results = {
|
|
34
|
-
errors: stats.compilation.errors,
|
|
35
|
-
warnings: stats.compilation.warnings,
|
|
36
|
-
compiling: false,
|
|
37
|
-
};
|
|
38
|
-
const event = new DevServerCompilationDoneEvent(Date.now(), this.devServerID, results);
|
|
39
|
-
this.pubsub.pub(BundlerAspect.id, event);
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// flag to indicate whether the plugin uses the dev server events or the legacy webpack events
|
|
44
|
-
static readonly USE_DEV_SERVER_EVENTS = true;
|
|
45
|
-
}
|
|
1
|
+
export { WebpackBitReporterPlugin } from '@teambit/webpack.plugins.webpack-bit-reporter-plugin';
|
|
@@ -1,63 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import findRoot from 'find-root';
|
|
4
|
-
import type { Logger } from '@teambit/logger';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Get the package folder, and in case it's not found get the resolved file path
|
|
8
|
-
* @param peerName
|
|
9
|
-
* @returns
|
|
10
|
-
*/
|
|
11
|
-
export function resolvePeerToDirOrFile(peerName: string, logger: Logger, hostRootDir?: string): string | undefined {
|
|
12
|
-
let resolved;
|
|
13
|
-
try {
|
|
14
|
-
const options = {
|
|
15
|
-
// resolve the host root dir to its real location, as require.resolve is preserve symlink, so we get wrong result otherwise
|
|
16
|
-
paths: [process.cwd(), __dirname],
|
|
17
|
-
};
|
|
18
|
-
if (hostRootDir) {
|
|
19
|
-
// resolve the host root dir to its real location, as require.resolve is preserve symlink, so we get wrong result otherwise
|
|
20
|
-
options.paths.unshift(realpathSync(hostRootDir));
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
resolved = require.resolve(peerName, options);
|
|
24
|
-
const folder = findRoot(resolved);
|
|
25
|
-
return folder;
|
|
26
|
-
} catch {
|
|
27
|
-
if (resolved) {
|
|
28
|
-
logger.warn(`Couldn't find root dir for "${peerName}" from path "${resolved}" to add it as webpack alias`);
|
|
29
|
-
} else {
|
|
30
|
-
logger.warn(`Couldn't resolve "${peerName}" to add it as webpack alias`);
|
|
31
|
-
}
|
|
32
|
-
return resolved;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Make sure to resolve the peer path correctly
|
|
38
|
-
* we first resolve it to its dir (to be aligned with the aliases transformer)
|
|
39
|
-
* Then we resolve it to specific file, using enhanced resolve to make sure we resolve it using the correct main fields order
|
|
40
|
-
* @param peer
|
|
41
|
-
*/
|
|
42
|
-
export function resolvePeerToFile(peer: string, logger: Logger, hostRootDir?: string): string | undefined {
|
|
43
|
-
const dirOrFile = resolvePeerToDirOrFile(peer, logger, hostRootDir);
|
|
44
|
-
if (!dirOrFile) return undefined;
|
|
45
|
-
const resolver = createResolver();
|
|
46
|
-
const resolvedFile = resolver.resolveSync({}, '', dirOrFile);
|
|
47
|
-
return resolvedFile;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Generate a resolver that will read first the module field then the main field
|
|
52
|
-
* to make it compatible with webpack behavior
|
|
53
|
-
* @returns
|
|
54
|
-
*/
|
|
55
|
-
function createResolver() {
|
|
56
|
-
// create a resolver
|
|
57
|
-
const myResolver = ResolverFactory.createResolver({
|
|
58
|
-
fileSystem: new CachedInputFileSystem(fs, 4000),
|
|
59
|
-
useSyncFileSystemCalls: true,
|
|
60
|
-
mainFields: ['browser', 'module', 'main'],
|
|
61
|
-
});
|
|
62
|
-
return myResolver;
|
|
63
|
-
}
|
|
1
|
+
export { resolvePeerToDirOrFile, resolvePeerToFile } from '@teambit/webpack.modules.resolve-peer';
|
|
2
|
+
export type { ResolvePeerLogger } from '@teambit/webpack.modules.resolve-peer';
|
|
@@ -1,37 +1,11 @@
|
|
|
1
1
|
import type { WebpackConfigMutator } from '@teambit/webpack.modules.config-mutator';
|
|
2
2
|
import type { Logger } from '@teambit/logger';
|
|
3
|
+
import { generateAddAliasesFromPeersTransformer } from '@teambit/webpack.transformers.generate-add-aliases-from-peers';
|
|
4
|
+
import { generateExternalsTransformer } from '@teambit/webpack.transformers.generate-externals';
|
|
3
5
|
import { getExposedRules } from './get-exposed-rules';
|
|
4
|
-
import { resolvePeerToDirOrFile } from './resolve-peer';
|
|
5
6
|
import type { WebpackConfigTransformContext } from '../webpack.main.runtime';
|
|
6
|
-
import { getExternals } from './get-externals';
|
|
7
7
|
|
|
8
|
-
export
|
|
9
|
-
return (config: WebpackConfigMutator, context: WebpackConfigTransformContext): WebpackConfigMutator => {
|
|
10
|
-
const hostRootDir = context.target?.hostRootDir || context.hostRootDir;
|
|
11
|
-
const peerAliases = peers.reduce((acc, peerName) => {
|
|
12
|
-
// gets the correct module folder of the package.
|
|
13
|
-
// this allows us to resolve internal files, for example:
|
|
14
|
-
// node_modules/react-dom/test-utils
|
|
15
|
-
//
|
|
16
|
-
// we can't use require.resolve() because it resolves to a specific file.
|
|
17
|
-
// for example, if we used "react-dom": require.resolve("react-dom"),
|
|
18
|
-
// it would try to resolve "react-dom/test-utils" as:
|
|
19
|
-
// node_modules/react-dom/index.js/test-utils
|
|
20
|
-
const resolved = resolvePeerToDirOrFile(peerName, logger, hostRootDir);
|
|
21
|
-
// Sometime there are packages that only hold icons for example, so there is no main property in their package.json
|
|
22
|
-
// so they can't be resolved.
|
|
23
|
-
// in such cases do not add them to the aliases.
|
|
24
|
-
// We already log that cases in the resolvePeerToDirOrFile function.
|
|
25
|
-
if (resolved) {
|
|
26
|
-
acc[peerName] = resolved;
|
|
27
|
-
}
|
|
28
|
-
return acc;
|
|
29
|
-
}, {});
|
|
30
|
-
|
|
31
|
-
config.addAliases(peerAliases);
|
|
32
|
-
return config;
|
|
33
|
-
};
|
|
34
|
-
}
|
|
8
|
+
export { generateAddAliasesFromPeersTransformer, generateExternalsTransformer };
|
|
35
9
|
|
|
36
10
|
// [dead code] - no longer used
|
|
37
11
|
/**
|
|
@@ -47,16 +21,3 @@ export function generateExposePeersTransformer(peers: string[], logger: Logger)
|
|
|
47
21
|
return config;
|
|
48
22
|
};
|
|
49
23
|
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Generate a transformer that expose all the peers as global via the expose loader
|
|
53
|
-
* @param peers
|
|
54
|
-
* @returns
|
|
55
|
-
*/
|
|
56
|
-
export function generateExternalsTransformer(depes: string[]) {
|
|
57
|
-
return (config: WebpackConfigMutator): WebpackConfigMutator => {
|
|
58
|
-
const externals = getExternals(depes);
|
|
59
|
-
config.addExternals(externals);
|
|
60
|
-
return config;
|
|
61
|
-
};
|
|
62
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function getExternals(deps: string[]): Record<string, string>;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.getExternals = getExternals;
|
|
7
|
-
function _camelcase() {
|
|
8
|
-
const data = _interopRequireDefault(require("camelcase"));
|
|
9
|
-
_camelcase = function () {
|
|
10
|
-
return data;
|
|
11
|
-
};
|
|
12
|
-
return data;
|
|
13
|
-
}
|
|
14
|
-
function _webpackModules() {
|
|
15
|
-
const data = require("@teambit/webpack.modules.generate-externals");
|
|
16
|
-
_webpackModules = function () {
|
|
17
|
-
return data;
|
|
18
|
-
};
|
|
19
|
-
return data;
|
|
20
|
-
}
|
|
21
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
22
|
-
function getExternals(deps) {
|
|
23
|
-
return (0, _webpackModules().generateExternals)(deps, {
|
|
24
|
-
transformName: depName => (0, _camelcase().default)(depName.replace('@', '').replace('/', '-'), {
|
|
25
|
-
pascalCase: true
|
|
26
|
-
})
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
//# sourceMappingURL=get-externals.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_camelcase","data","_interopRequireDefault","require","_webpackModules","e","__esModule","default","getExternals","deps","generateExternals","transformName","depName","camelcase","replace","pascalCase"],"sources":["get-externals.ts"],"sourcesContent":["import camelcase from 'camelcase';\nimport { generateExternals } from '@teambit/webpack.modules.generate-externals';\n\nexport function getExternals(deps: string[]) {\n return generateExternals(deps, {\n transformName: (depName) => camelcase(depName.replace('@', '').replace('/', '-'), { pascalCase: true }),\n });\n}\n"],"mappings":";;;;;;AAAA,SAAAA,WAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,UAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,gBAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,eAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAgF,SAAAC,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEzE,SAASG,YAAYA,CAACC,IAAc,EAAE;EAC3C,OAAO,IAAAC,mCAAiB,EAACD,IAAI,EAAE;IAC7BE,aAAa,EAAGC,OAAO,IAAK,IAAAC,oBAAS,EAACD,OAAO,CAACE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAACA,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;MAAEC,UAAU,EAAE;IAAK,CAAC;EACxG,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1,8 +0,0 @@
|
|
|
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
|
-
}
|