@crxjs/vite-plugin 2.0.0-beta.13 → 2.0.0-beta.15

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.
Files changed (2) hide show
  1. package/dist/index.mjs +35 -24
  2. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -3,7 +3,7 @@ import { createHash } from 'crypto';
3
3
  import debug$3 from 'debug';
4
4
  import v8 from 'v8';
5
5
  import { posix } from 'path';
6
- import { Subject, filter, ReplaySubject, switchMap, of, startWith, map, mergeMap, firstValueFrom, takeUntil, first, toArray, retry, concatWith, Subscription, buffer } from 'rxjs';
6
+ import { Subject, filter, ReplaySubject, switchMap, of, startWith, map, BehaviorSubject, mergeMap, firstValueFrom, takeUntil, first, toArray, retry, concatWith, Subscription, buffer } from 'rxjs';
7
7
  import fsx from 'fs-extra';
8
8
  import { performance } from 'perf_hooks';
9
9
  import { rollup } from 'rollup';
@@ -397,6 +397,10 @@ const allFilesReady$ = buildEnd$.pipe(
397
397
  map(() => [...outputFiles.values()]),
398
398
  switchMap((files) => Promise.allSettled(files.map(({ file }) => file)))
399
399
  );
400
+ const timestamp$ = new BehaviorSubject(Date.now());
401
+ allFilesReady$.subscribe(() => {
402
+ timestamp$.next(Date.now());
403
+ });
400
404
  const isRejected = (x) => x?.status === "rejected";
401
405
  const fileWriterError$ = allFilesReady$.pipe(
402
406
  mergeMap((results) => results.filter(isRejected)),
@@ -458,14 +462,10 @@ function prepScript(fileName, script) {
458
462
  const [imports] = lexer.parse(code, fileName);
459
463
  const depSet = new Set(deps);
460
464
  const magic = new MagicString(code);
461
- const now = Date.now();
462
465
  for (const i of imports)
463
466
  if (i.n) {
464
467
  depSet.add(i.n);
465
- let fileName2 = getFileName({ type: "module", id: i.n });
466
- if (!fileName2.startsWith("vendor")) {
467
- fileName2 = `${fileName2}?t=${now}`;
468
- }
468
+ const fileName2 = getFileName({ type: "module", id: i.n });
469
469
  const fullImport = code.substring(i.s, i.e);
470
470
  magic.overwrite(i.s, i.e, fullImport.replace(i.n, `/${fileName2}`));
471
471
  }
@@ -477,7 +477,7 @@ async function allFilesReady() {
477
477
  await firstValueFrom(allFilesReady$);
478
478
  }
479
479
 
480
- const { outputFile, remove } = fsx;
480
+ const { outputFile } = fsx;
481
481
  _debug("file-writer");
482
482
  async function start({
483
483
  server
@@ -498,8 +498,6 @@ async function start({
498
498
  dir: outDir,
499
499
  format: "es"
500
500
  };
501
- if (server.config.build.emptyOutDir)
502
- await remove(server.config.build.outDir);
503
501
  fileWriterEvent$.next({ type: "build_start" });
504
502
  const build = await rollup(inputOptions);
505
503
  await build.write(outputOptions);
@@ -868,29 +866,42 @@ const pluginDynamicContentScripts = () => {
868
866
  ];
869
867
  };
870
868
 
869
+ const { remove } = fsx;
871
870
  const logger = createLogger("error", { prefix: "crxjs" });
872
871
  const pluginFileWriter = () => {
873
872
  fileWriterError$.subscribe((error) => {
874
873
  logger.error(error.err.message, { error: error.err });
875
874
  });
876
- return {
877
- name: "crx:file-writer",
878
- apply: "serve",
879
- configureServer(server) {
880
- server.httpServer?.on("listening", async () => {
881
- try {
882
- await start({ server });
883
- } catch (error) {
884
- console.error(error);
885
- server.close();
875
+ return [
876
+ {
877
+ name: "crx:file-writer-empty-out-dir",
878
+ apply: "serve",
879
+ enforce: "pre",
880
+ async configResolved(config) {
881
+ if (config.build.emptyOutDir) {
882
+ await remove(config.build.outDir);
886
883
  }
887
- });
888
- server.httpServer?.on("close", () => close());
884
+ }
889
885
  },
890
- closeBundle() {
891
- outputFiles.clear();
886
+ {
887
+ name: "crx:file-writer",
888
+ apply: "serve",
889
+ configureServer(server) {
890
+ server.httpServer?.on("listening", async () => {
891
+ try {
892
+ await start({ server });
893
+ } catch (error) {
894
+ console.error(error);
895
+ server.close();
896
+ }
897
+ });
898
+ server.httpServer?.on("close", () => close());
899
+ },
900
+ closeBundle() {
901
+ outputFiles.clear();
902
+ }
892
903
  }
893
- };
904
+ ];
894
905
  };
895
906
 
896
907
  const _require = typeof require === "undefined" ? createRequire(import.meta.url) : require;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crxjs/vite-plugin",
3
- "version": "2.0.0-beta.13",
3
+ "version": "2.0.0-beta.15",
4
4
  "description": "Build Chrome Extensions with this Vite plugin.",
5
5
  "keywords": [
6
6
  "rollup-plugin",