@module-federation/vite 1.0.0-alpha-661e052 → 1.0.0-alpha-1aa30c0

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/lib/index.cjs CHANGED
@@ -27,6 +27,7 @@ function _interopNamespace(e) {
27
27
 
28
28
  var fs__namespace = /*#__PURE__*/_interopNamespace(fs);
29
29
  var path__namespace = /*#__PURE__*/_interopNamespace(path);
30
+ var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
30
31
  var MagicString__default = /*#__PURE__*/_interopDefaultLegacy(MagicString);
31
32
 
32
33
  var addEntry = function addEntry(_ref) {
@@ -338,6 +339,7 @@ fs.writeFileSync(path.resolve(nodeModulesDir, virtualPackageName, "package.json"
338
339
  var VirtualModule = /*#__PURE__*/function () {
339
340
  function VirtualModule(name) {
340
341
  this.originName = void 0;
342
+ this.inited = false;
341
343
  this.originName = name;
342
344
  }
343
345
  var _proto = VirtualModule.prototype;
@@ -347,7 +349,11 @@ var VirtualModule = /*#__PURE__*/function () {
347
349
  _proto.getImportId = function getImportId() {
348
350
  return virtualPackageName + "/" + packageNameEncode(this.originName);
349
351
  };
350
- _proto.writeSync = function writeSync(code) {
352
+ _proto.writeSync = function writeSync(code, force) {
353
+ if (!force && this.inited) return;
354
+ if (!this.inited) {
355
+ this.inited = true;
356
+ }
351
357
  fs.writeFileSync(this.getPath() + ".js", code);
352
358
  };
353
359
  _proto.write = function write(code) {
@@ -356,6 +362,26 @@ var VirtualModule = /*#__PURE__*/function () {
356
362
  return VirtualModule;
357
363
  }();
358
364
 
365
+ /**
366
+ * https://github.com/module-federation/vite/issues/68
367
+ */
368
+ function getLocalSharedImportMapPath_windows() {
369
+ var _getNormalizeModuleFe = getNormalizeModuleFederationOptions(),
370
+ name = _getNormalizeModuleFe.name;
371
+ return path__default["default"].resolve(".__mf__win", packageNameEncode(name), "localSharedImportMap");
372
+ }
373
+ function writeLocalSharedImportMap_windows(content) {
374
+ var localSharedImportMapId = getLocalSharedImportMapPath_windows();
375
+ createFile(localSharedImportMapId + ".js", "\n// Windows temporarily needs this file, https://github.com/module-federation/vite/issues/68\n" + content);
376
+ }
377
+ function createFile(filePath, content) {
378
+ var dir = path__default["default"].dirname(filePath);
379
+ fs.mkdirSync(dir, {
380
+ recursive: true
381
+ });
382
+ fs.writeFileSync(filePath, content);
383
+ }
384
+
359
385
  /**
360
386
  * Even the resolveId hook cannot interfere with vite pre-build,
361
387
  * and adding query parameter virtual modules will also fail.
@@ -377,14 +403,28 @@ var generateLocalSharedImportMap = function generateLocalSharedImportMap() {
377
403
  // *** __loadShare__
378
404
  var writeLocalSharedImportMap = function writeLocalSharedImportMap() {
379
405
  try {
406
+ var _exit;
380
407
  var sharedCount = shareds.size;
381
408
  return Promise.resolve(function () {
382
409
  if (prevSharedCount !== sharedCount) {
410
+ var _temp2 = function _temp2(_result) {
411
+ if (_exit) return _result;
412
+ var _writeSync = localSharedImportMapModule.writeSync;
413
+ return Promise.resolve(generateLocalSharedImportMap()).then(function (_generateLocalSharedI2) {
414
+ return _writeSync.call(localSharedImportMapModule, _generateLocalSharedI2, true);
415
+ });
416
+ };
383
417
  prevSharedCount = sharedCount;
384
- var _writeSync = localSharedImportMapModule.writeSync;
385
- return Promise.resolve(generateLocalSharedImportMap()).then(function (_generateLocalSharedI) {
386
- return _writeSync.call(localSharedImportMapModule, _generateLocalSharedI);
387
- });
418
+ var _temp = function () {
419
+ if (process.platform === "win32") {
420
+ return Promise.resolve(generateLocalSharedImportMap()).then(function (_generateLocalSharedI) {
421
+ var _writeLocalSharedImpo = writeLocalSharedImportMap_windows(_generateLocalSharedI);
422
+ _exit = 1;
423
+ return _writeLocalSharedImpo;
424
+ });
425
+ }
426
+ }();
427
+ return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
388
428
  }
389
429
  }());
390
430
  } catch (e) {
@@ -409,7 +449,10 @@ function addShare(pkg) {
409
449
  // *** Expose locally provided shared modules here
410
450
  var localSharedImportMapModule = new VirtualModule("localSharedImportMap");
411
451
  localSharedImportMapModule.writeSync("");
412
- function getLocalSharedImportMapId() {
452
+ function getLocalSharedImportMapPath() {
453
+ if (process.platform === "win32") {
454
+ return getLocalSharedImportMapPath_windows();
455
+ }
413
456
  return localSharedImportMapModule.getPath();
414
457
  }
415
458
  var prevSharedCount = 0;
@@ -433,7 +476,7 @@ function generateRemoteEntry(options) {
433
476
  return item[1];
434
477
  }).join('\n') + "\n\n const exposesMap = {\n " + Object.keys(options.exposes).map(function (key) {
435
478
  return "\n " + JSON.stringify(key) + ": async () => {\n const importModule = await import(" + JSON.stringify(options.exposes[key]["import"]) + ")\n const exportModule = {}\n Object.assign(exportModule, importModule)\n Object.defineProperty(exportModule, \"__esModule\", {\n value: true,\n enumerable: false\n })\n return exportModule\n }\n ";
436
- }).join(',') + "\n }\n import localSharedImportMap from \"" + getLocalSharedImportMapId() + "\"\n async function init(shared = {}) {\n const initRes = runtimeInit({\n name: " + JSON.stringify(options.name) + ",\n remotes: [" + Object.keys(options.remotes).map(function (key) {
479
+ }).join(',') + "\n }\n import localSharedImportMap from \"" + getLocalSharedImportMapPath() + "\"\n async function init(shared = {}) {\n const initRes = runtimeInit({\n name: " + JSON.stringify(options.name) + ",\n remotes: [" + Object.keys(options.remotes).map(function (key) {
437
480
  var remote = options.remotes[key];
438
481
  return "\n {\n entryGlobalName: " + JSON.stringify(remote.entryGlobalName) + ",\n name: " + JSON.stringify(remote.name) + ",\n type: " + JSON.stringify(remote.type) + ",\n entry: " + JSON.stringify(remote.entry) + ",\n }\n ";
439
482
  }).join(',') + "\n ],\n shared: localSharedImportMap,\n plugins: [" + pluginImportNames.map(function (item) {
@@ -606,15 +649,15 @@ function proxySharedModule(options) {
606
649
  name: "generateLocalSharedImportMap",
607
650
  enforce: "post",
608
651
  resolveId: function resolveId(id) {
609
- if (id.includes(getLocalSharedImportMapId())) return id;
652
+ if (id.includes(getLocalSharedImportMapPath())) return id;
610
653
  },
611
654
  load: function load(id) {
612
- if (id.includes(getLocalSharedImportMapId())) {
655
+ if (id.includes(getLocalSharedImportMapPath())) {
613
656
  return generateLocalSharedImportMap();
614
657
  }
615
658
  },
616
659
  transform: function transform(code, id) {
617
- if (id.includes(getLocalSharedImportMapId())) {
660
+ if (id.includes(getLocalSharedImportMapPath())) {
618
661
  return generateLocalSharedImportMap();
619
662
  }
620
663
  }
@@ -690,6 +733,9 @@ function proxySharedModule(options) {
690
733
  name: "watchLocalSharedImportMap",
691
734
  apply: "serve",
692
735
  config: function config(_config2) {
736
+ _config2.optimizeDeps = defu.defu(_config2.optimizeDeps, {
737
+ exclude: [getLocalSharedImportMapPath()]
738
+ });
693
739
  _config2.server = defu.defu(_config2.server, {
694
740
  watch: {
695
741
  ignored: []
@@ -697,7 +743,7 @@ function proxySharedModule(options) {
697
743
  });
698
744
  var watch = _config2.server.watch;
699
745
  watch.ignored = [].concat(watch.ignored);
700
- watch.ignored.push("!**/node_modules/" + localSharedImportMapModule.getImportId() + ".js");
746
+ watch.ignored.push("!**" + getLocalSharedImportMapPath() + "**");
701
747
  }
702
748
  }, {
703
749
  name: "prebuild-top-level-await",
@@ -811,7 +857,7 @@ function federation(mfUserOptions) {
811
857
  entryName: 'hostInit',
812
858
  entryPath: HOST_AUTO_INIT_PATH
813
859
  }), [pluginProxyRemoteEntry(), pluginProxyRemotes(options)], pluginModuleParseEnd(function (id) {
814
- return id.includes(HOST_AUTO_INIT_QUERY_STR) || id.includes(WRAP_REMOTE_ENTRY_QUERY_STR) || id.includes(REMOTE_ENTRY_ID) || id.includes(getLocalSharedImportMapId());
860
+ return id.includes(HOST_AUTO_INIT_QUERY_STR) || id.includes(WRAP_REMOTE_ENTRY_QUERY_STR) || id.includes(REMOTE_ENTRY_ID) || id.includes(getLocalSharedImportMapPath());
815
861
  }), proxySharedModule({
816
862
  shared: shared
817
863
  }), [{
package/lib/index.esm.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as fs from 'fs';
2
2
  import { existsSync, mkdirSync, writeFileSync, writeFile } from 'fs';
3
3
  import * as path from 'pathe';
4
- import { parse, join, dirname, resolve } from 'pathe';
4
+ import path__default, { parse, join, dirname, resolve } from 'pathe';
5
5
  import { createFilter } from '@rollup/pluginutils';
6
6
  import { defu } from 'defu';
7
7
  import { walk } from 'estree-walker';
@@ -316,6 +316,7 @@ writeFileSync(resolve(nodeModulesDir, virtualPackageName, "package.json"), JSON.
316
316
  var VirtualModule = /*#__PURE__*/function () {
317
317
  function VirtualModule(name) {
318
318
  this.originName = void 0;
319
+ this.inited = false;
319
320
  this.originName = name;
320
321
  }
321
322
  var _proto = VirtualModule.prototype;
@@ -325,7 +326,11 @@ var VirtualModule = /*#__PURE__*/function () {
325
326
  _proto.getImportId = function getImportId() {
326
327
  return virtualPackageName + "/" + packageNameEncode(this.originName);
327
328
  };
328
- _proto.writeSync = function writeSync(code) {
329
+ _proto.writeSync = function writeSync(code, force) {
330
+ if (!force && this.inited) return;
331
+ if (!this.inited) {
332
+ this.inited = true;
333
+ }
329
334
  writeFileSync(this.getPath() + ".js", code);
330
335
  };
331
336
  _proto.write = function write(code) {
@@ -334,6 +339,26 @@ var VirtualModule = /*#__PURE__*/function () {
334
339
  return VirtualModule;
335
340
  }();
336
341
 
342
+ /**
343
+ * https://github.com/module-federation/vite/issues/68
344
+ */
345
+ function getLocalSharedImportMapPath_windows() {
346
+ var _getNormalizeModuleFe = getNormalizeModuleFederationOptions(),
347
+ name = _getNormalizeModuleFe.name;
348
+ return path__default.resolve(".__mf__win", packageNameEncode(name), "localSharedImportMap");
349
+ }
350
+ function writeLocalSharedImportMap_windows(content) {
351
+ var localSharedImportMapId = getLocalSharedImportMapPath_windows();
352
+ createFile(localSharedImportMapId + ".js", "\n// Windows temporarily needs this file, https://github.com/module-federation/vite/issues/68\n" + content);
353
+ }
354
+ function createFile(filePath, content) {
355
+ var dir = path__default.dirname(filePath);
356
+ mkdirSync(dir, {
357
+ recursive: true
358
+ });
359
+ writeFileSync(filePath, content);
360
+ }
361
+
337
362
  /**
338
363
  * Even the resolveId hook cannot interfere with vite pre-build,
339
364
  * and adding query parameter virtual modules will also fail.
@@ -355,14 +380,28 @@ var generateLocalSharedImportMap = function generateLocalSharedImportMap() {
355
380
  // *** __loadShare__
356
381
  var writeLocalSharedImportMap = function writeLocalSharedImportMap() {
357
382
  try {
383
+ var _exit;
358
384
  var sharedCount = shareds.size;
359
385
  return Promise.resolve(function () {
360
386
  if (prevSharedCount !== sharedCount) {
387
+ var _temp2 = function _temp2(_result) {
388
+ if (_exit) return _result;
389
+ var _writeSync = localSharedImportMapModule.writeSync;
390
+ return Promise.resolve(generateLocalSharedImportMap()).then(function (_generateLocalSharedI2) {
391
+ return _writeSync.call(localSharedImportMapModule, _generateLocalSharedI2, true);
392
+ });
393
+ };
361
394
  prevSharedCount = sharedCount;
362
- var _writeSync = localSharedImportMapModule.writeSync;
363
- return Promise.resolve(generateLocalSharedImportMap()).then(function (_generateLocalSharedI) {
364
- return _writeSync.call(localSharedImportMapModule, _generateLocalSharedI);
365
- });
395
+ var _temp = function () {
396
+ if (process.platform === "win32") {
397
+ return Promise.resolve(generateLocalSharedImportMap()).then(function (_generateLocalSharedI) {
398
+ var _writeLocalSharedImpo = writeLocalSharedImportMap_windows(_generateLocalSharedI);
399
+ _exit = 1;
400
+ return _writeLocalSharedImpo;
401
+ });
402
+ }
403
+ }();
404
+ return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
366
405
  }
367
406
  }());
368
407
  } catch (e) {
@@ -387,7 +426,10 @@ function addShare(pkg) {
387
426
  // *** Expose locally provided shared modules here
388
427
  var localSharedImportMapModule = new VirtualModule("localSharedImportMap");
389
428
  localSharedImportMapModule.writeSync("");
390
- function getLocalSharedImportMapId() {
429
+ function getLocalSharedImportMapPath() {
430
+ if (process.platform === "win32") {
431
+ return getLocalSharedImportMapPath_windows();
432
+ }
391
433
  return localSharedImportMapModule.getPath();
392
434
  }
393
435
  var prevSharedCount = 0;
@@ -411,7 +453,7 @@ function generateRemoteEntry(options) {
411
453
  return item[1];
412
454
  }).join('\n') + "\n\n const exposesMap = {\n " + Object.keys(options.exposes).map(function (key) {
413
455
  return "\n " + JSON.stringify(key) + ": async () => {\n const importModule = await import(" + JSON.stringify(options.exposes[key]["import"]) + ")\n const exportModule = {}\n Object.assign(exportModule, importModule)\n Object.defineProperty(exportModule, \"__esModule\", {\n value: true,\n enumerable: false\n })\n return exportModule\n }\n ";
414
- }).join(',') + "\n }\n import localSharedImportMap from \"" + getLocalSharedImportMapId() + "\"\n async function init(shared = {}) {\n const initRes = runtimeInit({\n name: " + JSON.stringify(options.name) + ",\n remotes: [" + Object.keys(options.remotes).map(function (key) {
456
+ }).join(',') + "\n }\n import localSharedImportMap from \"" + getLocalSharedImportMapPath() + "\"\n async function init(shared = {}) {\n const initRes = runtimeInit({\n name: " + JSON.stringify(options.name) + ",\n remotes: [" + Object.keys(options.remotes).map(function (key) {
415
457
  var remote = options.remotes[key];
416
458
  return "\n {\n entryGlobalName: " + JSON.stringify(remote.entryGlobalName) + ",\n name: " + JSON.stringify(remote.name) + ",\n type: " + JSON.stringify(remote.type) + ",\n entry: " + JSON.stringify(remote.entry) + ",\n }\n ";
417
459
  }).join(',') + "\n ],\n shared: localSharedImportMap,\n plugins: [" + pluginImportNames.map(function (item) {
@@ -584,15 +626,15 @@ function proxySharedModule(options) {
584
626
  name: "generateLocalSharedImportMap",
585
627
  enforce: "post",
586
628
  resolveId: function resolveId(id) {
587
- if (id.includes(getLocalSharedImportMapId())) return id;
629
+ if (id.includes(getLocalSharedImportMapPath())) return id;
588
630
  },
589
631
  load: function load(id) {
590
- if (id.includes(getLocalSharedImportMapId())) {
632
+ if (id.includes(getLocalSharedImportMapPath())) {
591
633
  return generateLocalSharedImportMap();
592
634
  }
593
635
  },
594
636
  transform: function transform(code, id) {
595
- if (id.includes(getLocalSharedImportMapId())) {
637
+ if (id.includes(getLocalSharedImportMapPath())) {
596
638
  return generateLocalSharedImportMap();
597
639
  }
598
640
  }
@@ -668,6 +710,9 @@ function proxySharedModule(options) {
668
710
  name: "watchLocalSharedImportMap",
669
711
  apply: "serve",
670
712
  config: function config(_config2) {
713
+ _config2.optimizeDeps = defu(_config2.optimizeDeps, {
714
+ exclude: [getLocalSharedImportMapPath()]
715
+ });
671
716
  _config2.server = defu(_config2.server, {
672
717
  watch: {
673
718
  ignored: []
@@ -675,7 +720,7 @@ function proxySharedModule(options) {
675
720
  });
676
721
  var watch = _config2.server.watch;
677
722
  watch.ignored = [].concat(watch.ignored);
678
- watch.ignored.push("!**/node_modules/" + localSharedImportMapModule.getImportId() + ".js");
723
+ watch.ignored.push("!**" + getLocalSharedImportMapPath() + "**");
679
724
  }
680
725
  }, {
681
726
  name: "prebuild-top-level-await",
@@ -789,7 +834,7 @@ function federation(mfUserOptions) {
789
834
  entryName: 'hostInit',
790
835
  entryPath: HOST_AUTO_INIT_PATH
791
836
  }), [pluginProxyRemoteEntry(), pluginProxyRemotes(options)], pluginModuleParseEnd(function (id) {
792
- return id.includes(HOST_AUTO_INIT_QUERY_STR) || id.includes(WRAP_REMOTE_ENTRY_QUERY_STR) || id.includes(REMOTE_ENTRY_ID) || id.includes(getLocalSharedImportMapId());
837
+ return id.includes(HOST_AUTO_INIT_QUERY_STR) || id.includes(WRAP_REMOTE_ENTRY_QUERY_STR) || id.includes(REMOTE_ENTRY_ID) || id.includes(getLocalSharedImportMapPath());
793
838
  }), proxySharedModule({
794
839
  shared: shared
795
840
  }), [{
@@ -1,7 +1,7 @@
1
1
  import * as fs from 'fs';
2
2
  import { existsSync, mkdirSync, writeFileSync, writeFile } from 'fs';
3
3
  import * as path from 'pathe';
4
- import { parse, join, dirname, resolve } from 'pathe';
4
+ import path__default, { parse, join, dirname, resolve } from 'pathe';
5
5
  import { createFilter } from '@rollup/pluginutils';
6
6
  import { defu } from 'defu';
7
7
  import { walk } from 'estree-walker';
@@ -318,6 +318,7 @@ writeFileSync(resolve(nodeModulesDir, virtualPackageName, "package.json"), JSON.
318
318
  class VirtualModule {
319
319
  constructor(name) {
320
320
  this.originName = void 0;
321
+ this.inited = false;
321
322
  this.originName = name;
322
323
  }
323
324
  getPath() {
@@ -326,7 +327,11 @@ class VirtualModule {
326
327
  getImportId() {
327
328
  return `${virtualPackageName}/${packageNameEncode(this.originName)}`;
328
329
  }
329
- writeSync(code) {
330
+ writeSync(code, force) {
331
+ if (!force && this.inited) return;
332
+ if (!this.inited) {
333
+ this.inited = true;
334
+ }
330
335
  writeFileSync(this.getPath() + ".js", code);
331
336
  }
332
337
  write(code) {
@@ -334,6 +339,27 @@ class VirtualModule {
334
339
  }
335
340
  }
336
341
 
342
+ /**
343
+ * https://github.com/module-federation/vite/issues/68
344
+ */
345
+ function getLocalSharedImportMapPath_windows() {
346
+ const {
347
+ name
348
+ } = getNormalizeModuleFederationOptions();
349
+ return path__default.resolve(".__mf__win", packageNameEncode(name), "localSharedImportMap");
350
+ }
351
+ function writeLocalSharedImportMap_windows(content) {
352
+ const localSharedImportMapId = getLocalSharedImportMapPath_windows();
353
+ createFile(localSharedImportMapId + ".js", "\n// Windows temporarily needs this file, https://github.com/module-federation/vite/issues/68\n" + content);
354
+ }
355
+ function createFile(filePath, content) {
356
+ const dir = path__default.dirname(filePath);
357
+ mkdirSync(dir, {
358
+ recursive: true
359
+ });
360
+ writeFileSync(filePath, content);
361
+ }
362
+
337
363
  /**
338
364
  * Even the resolveId hook cannot interfere with vite pre-build,
339
365
  * and adding query parameter virtual modules will also fail.
@@ -358,7 +384,10 @@ function addShare(pkg) {
358
384
  // *** Expose locally provided shared modules here
359
385
  const localSharedImportMapModule = new VirtualModule("localSharedImportMap");
360
386
  localSharedImportMapModule.writeSync("");
361
- function getLocalSharedImportMapId() {
387
+ function getLocalSharedImportMapPath() {
388
+ if (process.platform === "win32") {
389
+ return getLocalSharedImportMapPath_windows();
390
+ }
362
391
  return localSharedImportMapModule.getPath();
363
392
  }
364
393
  let prevSharedCount = 0;
@@ -366,7 +395,10 @@ async function writeLocalSharedImportMap() {
366
395
  const sharedCount = shareds.size;
367
396
  if (prevSharedCount !== sharedCount) {
368
397
  prevSharedCount = sharedCount;
369
- return localSharedImportMapModule.writeSync(await generateLocalSharedImportMap());
398
+ if (process.platform === "win32") {
399
+ return writeLocalSharedImportMap_windows(await generateLocalSharedImportMap());
400
+ }
401
+ return localSharedImportMapModule.writeSync(await generateLocalSharedImportMap(), true);
370
402
  }
371
403
  }
372
404
  async function generateLocalSharedImportMap() {
@@ -465,7 +497,7 @@ function generateRemoteEntry(options) {
465
497
  `;
466
498
  }).join(',')}
467
499
  }
468
- import localSharedImportMap from "${getLocalSharedImportMapId()}"
500
+ import localSharedImportMap from "${getLocalSharedImportMapPath()}"
469
501
  async function init(shared = {}) {
470
502
  const initRes = runtimeInit({
471
503
  name: ${JSON.stringify(options.name)},
@@ -664,15 +696,15 @@ function proxySharedModule(options) {
664
696
  name: "generateLocalSharedImportMap",
665
697
  enforce: "post",
666
698
  resolveId(id) {
667
- if (id.includes(getLocalSharedImportMapId())) return id;
699
+ if (id.includes(getLocalSharedImportMapPath())) return id;
668
700
  },
669
701
  load(id) {
670
- if (id.includes(getLocalSharedImportMapId())) {
702
+ if (id.includes(getLocalSharedImportMapPath())) {
671
703
  return generateLocalSharedImportMap();
672
704
  }
673
705
  },
674
706
  transform(code, id) {
675
- if (id.includes(getLocalSharedImportMapId())) {
707
+ if (id.includes(getLocalSharedImportMapPath())) {
676
708
  return generateLocalSharedImportMap();
677
709
  }
678
710
  }
@@ -740,6 +772,9 @@ function proxySharedModule(options) {
740
772
  name: "watchLocalSharedImportMap",
741
773
  apply: "serve",
742
774
  config(config) {
775
+ config.optimizeDeps = defu(config.optimizeDeps, {
776
+ exclude: [getLocalSharedImportMapPath()]
777
+ });
743
778
  config.server = defu(config.server, {
744
779
  watch: {
745
780
  ignored: []
@@ -747,7 +782,7 @@ function proxySharedModule(options) {
747
782
  });
748
783
  const watch = config.server.watch;
749
784
  watch.ignored = [].concat(watch.ignored);
750
- watch.ignored.push(`!**/node_modules/${localSharedImportMapModule.getImportId()}.js`);
785
+ watch.ignored.push(`!**${getLocalSharedImportMapPath()}**`);
751
786
  }
752
787
  }, {
753
788
  name: "prebuild-top-level-await",
@@ -874,7 +909,7 @@ function federation(mfUserOptions) {
874
909
  entryName: 'hostInit',
875
910
  entryPath: HOST_AUTO_INIT_PATH
876
911
  }), pluginProxyRemoteEntry(), pluginProxyRemotes(options), ...pluginModuleParseEnd(id => {
877
- return id.includes(HOST_AUTO_INIT_QUERY_STR) || id.includes(WRAP_REMOTE_ENTRY_QUERY_STR) || id.includes(REMOTE_ENTRY_ID) || id.includes(getLocalSharedImportMapId());
912
+ return id.includes(HOST_AUTO_INIT_QUERY_STR) || id.includes(WRAP_REMOTE_ENTRY_QUERY_STR) || id.includes(REMOTE_ENTRY_ID) || id.includes(getLocalSharedImportMapPath());
878
913
  }), ...proxySharedModule({
879
914
  shared
880
915
  }), {
package/lib/index.umd.js CHANGED
@@ -25,6 +25,7 @@
25
25
 
26
26
  var fs__namespace = /*#__PURE__*/_interopNamespace(fs);
27
27
  var path__namespace = /*#__PURE__*/_interopNamespace(path);
28
+ var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
28
29
  var MagicString__default = /*#__PURE__*/_interopDefaultLegacy(MagicString);
29
30
 
30
31
  var addEntry = function addEntry(_ref) {
@@ -336,6 +337,7 @@
336
337
  var VirtualModule = /*#__PURE__*/function () {
337
338
  function VirtualModule(name) {
338
339
  this.originName = void 0;
340
+ this.inited = false;
339
341
  this.originName = name;
340
342
  }
341
343
  var _proto = VirtualModule.prototype;
@@ -345,7 +347,11 @@
345
347
  _proto.getImportId = function getImportId() {
346
348
  return virtualPackageName + "/" + packageNameEncode(this.originName);
347
349
  };
348
- _proto.writeSync = function writeSync(code) {
350
+ _proto.writeSync = function writeSync(code, force) {
351
+ if (!force && this.inited) return;
352
+ if (!this.inited) {
353
+ this.inited = true;
354
+ }
349
355
  fs.writeFileSync(this.getPath() + ".js", code);
350
356
  };
351
357
  _proto.write = function write(code) {
@@ -354,6 +360,26 @@
354
360
  return VirtualModule;
355
361
  }();
356
362
 
363
+ /**
364
+ * https://github.com/module-federation/vite/issues/68
365
+ */
366
+ function getLocalSharedImportMapPath_windows() {
367
+ var _getNormalizeModuleFe = getNormalizeModuleFederationOptions(),
368
+ name = _getNormalizeModuleFe.name;
369
+ return path__default["default"].resolve(".__mf__win", packageNameEncode(name), "localSharedImportMap");
370
+ }
371
+ function writeLocalSharedImportMap_windows(content) {
372
+ var localSharedImportMapId = getLocalSharedImportMapPath_windows();
373
+ createFile(localSharedImportMapId + ".js", "\n// Windows temporarily needs this file, https://github.com/module-federation/vite/issues/68\n" + content);
374
+ }
375
+ function createFile(filePath, content) {
376
+ var dir = path__default["default"].dirname(filePath);
377
+ fs.mkdirSync(dir, {
378
+ recursive: true
379
+ });
380
+ fs.writeFileSync(filePath, content);
381
+ }
382
+
357
383
  /**
358
384
  * Even the resolveId hook cannot interfere with vite pre-build,
359
385
  * and adding query parameter virtual modules will also fail.
@@ -375,14 +401,28 @@
375
401
  // *** __loadShare__
376
402
  var writeLocalSharedImportMap = function writeLocalSharedImportMap() {
377
403
  try {
404
+ var _exit;
378
405
  var sharedCount = shareds.size;
379
406
  return Promise.resolve(function () {
380
407
  if (prevSharedCount !== sharedCount) {
408
+ var _temp2 = function _temp2(_result) {
409
+ if (_exit) return _result;
410
+ var _writeSync = localSharedImportMapModule.writeSync;
411
+ return Promise.resolve(generateLocalSharedImportMap()).then(function (_generateLocalSharedI2) {
412
+ return _writeSync.call(localSharedImportMapModule, _generateLocalSharedI2, true);
413
+ });
414
+ };
381
415
  prevSharedCount = sharedCount;
382
- var _writeSync = localSharedImportMapModule.writeSync;
383
- return Promise.resolve(generateLocalSharedImportMap()).then(function (_generateLocalSharedI) {
384
- return _writeSync.call(localSharedImportMapModule, _generateLocalSharedI);
385
- });
416
+ var _temp = function () {
417
+ if (process.platform === "win32") {
418
+ return Promise.resolve(generateLocalSharedImportMap()).then(function (_generateLocalSharedI) {
419
+ var _writeLocalSharedImpo = writeLocalSharedImportMap_windows(_generateLocalSharedI);
420
+ _exit = 1;
421
+ return _writeLocalSharedImpo;
422
+ });
423
+ }
424
+ }();
425
+ return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
386
426
  }
387
427
  }());
388
428
  } catch (e) {
@@ -407,7 +447,10 @@
407
447
  // *** Expose locally provided shared modules here
408
448
  var localSharedImportMapModule = new VirtualModule("localSharedImportMap");
409
449
  localSharedImportMapModule.writeSync("");
410
- function getLocalSharedImportMapId() {
450
+ function getLocalSharedImportMapPath() {
451
+ if (process.platform === "win32") {
452
+ return getLocalSharedImportMapPath_windows();
453
+ }
411
454
  return localSharedImportMapModule.getPath();
412
455
  }
413
456
  var prevSharedCount = 0;
@@ -431,7 +474,7 @@
431
474
  return item[1];
432
475
  }).join('\n') + "\n\n const exposesMap = {\n " + Object.keys(options.exposes).map(function (key) {
433
476
  return "\n " + JSON.stringify(key) + ": async () => {\n const importModule = await import(" + JSON.stringify(options.exposes[key]["import"]) + ")\n const exportModule = {}\n Object.assign(exportModule, importModule)\n Object.defineProperty(exportModule, \"__esModule\", {\n value: true,\n enumerable: false\n })\n return exportModule\n }\n ";
434
- }).join(',') + "\n }\n import localSharedImportMap from \"" + getLocalSharedImportMapId() + "\"\n async function init(shared = {}) {\n const initRes = runtimeInit({\n name: " + JSON.stringify(options.name) + ",\n remotes: [" + Object.keys(options.remotes).map(function (key) {
477
+ }).join(',') + "\n }\n import localSharedImportMap from \"" + getLocalSharedImportMapPath() + "\"\n async function init(shared = {}) {\n const initRes = runtimeInit({\n name: " + JSON.stringify(options.name) + ",\n remotes: [" + Object.keys(options.remotes).map(function (key) {
435
478
  var remote = options.remotes[key];
436
479
  return "\n {\n entryGlobalName: " + JSON.stringify(remote.entryGlobalName) + ",\n name: " + JSON.stringify(remote.name) + ",\n type: " + JSON.stringify(remote.type) + ",\n entry: " + JSON.stringify(remote.entry) + ",\n }\n ";
437
480
  }).join(',') + "\n ],\n shared: localSharedImportMap,\n plugins: [" + pluginImportNames.map(function (item) {
@@ -604,15 +647,15 @@
604
647
  name: "generateLocalSharedImportMap",
605
648
  enforce: "post",
606
649
  resolveId: function resolveId(id) {
607
- if (id.includes(getLocalSharedImportMapId())) return id;
650
+ if (id.includes(getLocalSharedImportMapPath())) return id;
608
651
  },
609
652
  load: function load(id) {
610
- if (id.includes(getLocalSharedImportMapId())) {
653
+ if (id.includes(getLocalSharedImportMapPath())) {
611
654
  return generateLocalSharedImportMap();
612
655
  }
613
656
  },
614
657
  transform: function transform(code, id) {
615
- if (id.includes(getLocalSharedImportMapId())) {
658
+ if (id.includes(getLocalSharedImportMapPath())) {
616
659
  return generateLocalSharedImportMap();
617
660
  }
618
661
  }
@@ -688,6 +731,9 @@
688
731
  name: "watchLocalSharedImportMap",
689
732
  apply: "serve",
690
733
  config: function config(_config2) {
734
+ _config2.optimizeDeps = defu.defu(_config2.optimizeDeps, {
735
+ exclude: [getLocalSharedImportMapPath()]
736
+ });
691
737
  _config2.server = defu.defu(_config2.server, {
692
738
  watch: {
693
739
  ignored: []
@@ -695,7 +741,7 @@
695
741
  });
696
742
  var watch = _config2.server.watch;
697
743
  watch.ignored = [].concat(watch.ignored);
698
- watch.ignored.push("!**/node_modules/" + localSharedImportMapModule.getImportId() + ".js");
744
+ watch.ignored.push("!**" + getLocalSharedImportMapPath() + "**");
699
745
  }
700
746
  }, {
701
747
  name: "prebuild-top-level-await",
@@ -809,7 +855,7 @@
809
855
  entryName: 'hostInit',
810
856
  entryPath: HOST_AUTO_INIT_PATH
811
857
  }), [pluginProxyRemoteEntry(), pluginProxyRemotes(options)], pluginModuleParseEnd(function (id) {
812
- return id.includes(HOST_AUTO_INIT_QUERY_STR) || id.includes(WRAP_REMOTE_ENTRY_QUERY_STR) || id.includes(REMOTE_ENTRY_ID) || id.includes(getLocalSharedImportMapId());
858
+ return id.includes(HOST_AUTO_INIT_QUERY_STR) || id.includes(WRAP_REMOTE_ENTRY_QUERY_STR) || id.includes(REMOTE_ENTRY_ID) || id.includes(getLocalSharedImportMapPath());
813
859
  }), proxySharedModule({
814
860
  shared: shared
815
861
  }), [{
@@ -4,9 +4,10 @@ export declare const virtualPackageName = "__mf__virtual";
4
4
  */
5
5
  export default class VirtualModule {
6
6
  originName: string;
7
+ inited: boolean;
7
8
  constructor(name: string);
8
9
  getPath(): string;
9
10
  getImportId(): string;
10
- writeSync(code: string): void;
11
+ writeSync(code: string, force?: boolean): void;
11
12
  write(code: string): void;
12
13
  }
@@ -0,0 +1,2 @@
1
+ export declare function getLocalSharedImportMapPath_windows(): string;
2
+ export declare function writeLocalSharedImportMap_windows(content: string): void;
@@ -15,7 +15,7 @@ export declare function writePreBuildLibPath(pkg: string): void;
15
15
  export declare function getPreBuildLibImportId(pkg: string): string;
16
16
  export declare function addShare(pkg: string): void;
17
17
  export declare const localSharedImportMapModule: VirtualModule;
18
- export declare function getLocalSharedImportMapId(): string;
18
+ export declare function getLocalSharedImportMapPath(): string;
19
19
  export declare function writeLocalSharedImportMap(): Promise<void>;
20
20
  export declare function generateLocalSharedImportMap(): Promise<string>;
21
21
  export declare const LOAD_SHARE_TAG = "__loadShare__";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@module-federation/vite",
3
- "version": "1.0.0-alpha-661e052",
3
+ "version": "1.0.0-alpha-1aa30c0",
4
4
  "description": "Vite plugin for Module Federation",
5
5
  "type": "module",
6
6
  "source": "src/index.ts",