@modern-js/module-tools 2.1.1-beta.2 → 2.2.1-beta.0

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 (39) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/builder/build.d.ts +1 -1
  3. package/dist/builder/build.js +3 -3
  4. package/dist/builder/build.js.map +1 -1
  5. package/dist/builder/dts/rollup.d.ts +2 -2
  6. package/dist/builder/dts/rollup.js +3 -7
  7. package/dist/builder/dts/rollup.js.map +1 -1
  8. package/dist/builder/dts/tsc-node.d.ts +1 -0
  9. package/dist/builder/dts/tsc-node.js +0 -0
  10. package/dist/builder/dts/tsc.d.ts +2 -2
  11. package/dist/builder/dts/tsc.js +6 -4
  12. package/dist/builder/dts/tsc.js.map +1 -1
  13. package/dist/command.js +7 -3
  14. package/dist/command.js.map +1 -1
  15. package/dist/config/normalize.js +1 -4
  16. package/dist/config/normalize.js.map +1 -1
  17. package/dist/constants/build-presets.d.ts +0 -1
  18. package/dist/constants/build-presets.js +1 -3
  19. package/dist/constants/build-presets.js.map +1 -1
  20. package/dist/constants/build.js +1 -1
  21. package/dist/constants/build.js.map +1 -1
  22. package/dist/dev.d.ts +6 -1
  23. package/dist/dev.js +47 -10
  24. package/dist/dev.js.map +1 -1
  25. package/dist/hooks/build.d.ts +5 -1
  26. package/dist/hooks/build.js +8 -2
  27. package/dist/hooks/build.js.map +1 -1
  28. package/dist/hooks/index.d.ts +2 -0
  29. package/dist/hooks/index.js +1 -1
  30. package/dist/hooks/index.js.map +1 -1
  31. package/dist/types/hooks.d.ts +8 -2
  32. package/dist/types/hooks.js.map +1 -1
  33. package/dist/utils/dts.d.ts +1 -1
  34. package/dist/utils/dts.js +17 -35
  35. package/dist/utils/dts.js.map +1 -1
  36. package/dist/utils/libuild-plugins.d.ts +2 -2
  37. package/dist/utils/libuild-plugins.js +3 -1
  38. package/dist/utils/libuild-plugins.js.map +1 -1
  39. package/package.json +14 -14
package/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # @modern-js/module-tools
2
2
 
3
+ ## 2.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 481cd56: feat: add legacyDefineConfig function
8
+ feat: 添加 legacyDefeinConfig 函数
9
+
10
+ ### Patch Changes
11
+
12
+ - cb12ee7: chore: remove some unused deps, bump postcss version
13
+
14
+ chore: 移除未使用的依赖, 升级 postcss 版本
15
+
16
+ - 8b7b39e: not use 'npm-library' preset by default
17
+ 默认不会使用 'npm-library' 预设
18
+ - ff10e87: fix: Using extends to solve the tsconfig configuration path conversion problem
19
+ fix: 使用 extends 解决 tsconfig 配置路径转换的问题
20
+ - bff9de6: fix: Fix the failure to resolve the path correctly when running Storybook
21
+ fix: 修复运行 Storybook 时候无法正确解析路径
22
+ - Updated dependencies [cb12ee7]
23
+ - Updated dependencies [49eff0c]
24
+ - Updated dependencies [360a259]
25
+ - Updated dependencies [12ef50f]
26
+ - @modern-js/core@2.2.0
27
+ - @modern-js/plugin-changeset@2.2.0
28
+ - @modern-js/utils@2.2.0
29
+ - @modern-js/plugin-lint@2.2.0
30
+ - @modern-js/plugin-i18n@2.2.0
31
+ - @modern-js/new-action@2.2.0
32
+ - @modern-js/upgrade@2.2.0
33
+ - @modern-js/plugin@2.2.0
34
+
3
35
  ## 2.1.0
4
36
 
5
37
  ### Patch Changes
@@ -14,7 +14,7 @@ export declare const buildInJsProject: (options: {
14
14
  buildCmdOptions: BuildCommandOptions;
15
15
  context: ModuleContext;
16
16
  }, api: PluginAPI<ModuleTools>) => Promise<void>;
17
- export declare const generatorDts: (config: BaseBuildConfig, api: PluginAPI, options: {
17
+ export declare const generatorDts: (config: BaseBuildConfig, api: PluginAPI<ModuleTools>, options: {
18
18
  watch: boolean;
19
19
  dts: DTSOptions;
20
20
  }) => Promise<void>;
@@ -114,7 +114,7 @@ const generatorDts = (config, api, options) => __async(void 0, null, function* (
114
114
  if (buildType === "bundle") {
115
115
  const { getFinalExternals } = yield Promise.resolve().then(() => __toESM(require("../utils/builder")));
116
116
  const finalExternals = yield getFinalExternals(config, { appDirectory });
117
- yield runRollup({
117
+ yield runRollup(api, {
118
118
  distDir: distPath,
119
119
  watch,
120
120
  externals: finalExternals,
@@ -122,7 +122,7 @@ const generatorDts = (config, api, options) => __async(void 0, null, function* (
122
122
  tsconfigPath
123
123
  });
124
124
  } else {
125
- yield runTsc({
125
+ yield runTsc(api, {
126
126
  appDirectory,
127
127
  alias,
128
128
  distAbsPath: distPath,
@@ -190,7 +190,7 @@ const buildLib = (config, api, options) => __async(void 0, null, function* () {
190
190
  plugins.push(svgrPlugin(options2));
191
191
  }
192
192
  const { watchPlugin, externalPlugin } = yield Promise.resolve().then(() => __toESM(require("../utils/libuild-plugins")));
193
- plugins.push(watchPlugin(config));
193
+ plugins.push(watchPlugin(api, config));
194
194
  plugins.push(externalPlugin(config, { appDirectory }));
195
195
  const buildConfig = {
196
196
  root,
@@ -1 +1 @@
1
- {"version":3,"file":null,"mappings":"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","names":["options"],"sources":["../../src/builder/build.ts"],"sourcesContent":["import { join } from 'path';\nimport type { CLIConfig } from '@modern-js/libuild';\nimport type {\n BuildCommandOptions,\n BaseBuildConfig,\n ModuleTools,\n PluginAPI,\n DTSOptions,\n ModuleContext,\n} from '../types';\n\nexport const runBuildTask = async (\n options: {\n buildConfig: BaseBuildConfig;\n buildCmdOptions: BuildCommandOptions;\n context: ModuleContext;\n },\n api: PluginAPI<ModuleTools>,\n) => {\n const { buildConfig, context } = options;\n const { appDirectory, isTsProject } = context;\n\n if (isTsProject) {\n await buildInTsProject(options, api);\n } else {\n await buildInJsProject(options, api);\n }\n\n const { copyTask } = await import('./copy');\n await copyTask(buildConfig, { appDirectory });\n};\n\nexport const buildInTsProject = async (\n options: {\n buildConfig: BaseBuildConfig;\n buildCmdOptions: BuildCommandOptions;\n context: ModuleContext;\n },\n api: PluginAPI<ModuleTools>,\n) => {\n const { buildConfig, buildCmdOptions } = options;\n const dts = buildCmdOptions.dts ? buildConfig.dts : false;\n const skipBuildLib = buildConfig.dts ? buildConfig.dts.only : false;\n const watch = buildCmdOptions.watch ?? false;\n\n if (dts === false) {\n // --no-dts and buildConfig is `{ dts: { only: true } }`, then skip.\n !skipBuildLib && (await buildLib(buildConfig, api, { watch }));\n } else {\n const tasks = dts.only ? [generatorDts] : [buildLib, generatorDts];\n const { default: pMap } = await import('../../compiled/p-map');\n await pMap(tasks, async task => {\n await task(buildConfig, api as any, { watch, dts });\n });\n }\n};\n\nexport const buildInJsProject = async (\n options: {\n buildConfig: BaseBuildConfig;\n buildCmdOptions: BuildCommandOptions;\n context: ModuleContext;\n },\n api: PluginAPI<ModuleTools>,\n) => {\n const { buildConfig, buildCmdOptions } = options;\n const dts = buildCmdOptions.dts ? buildConfig.dts : false;\n const watch = buildCmdOptions.watch ?? false;\n\n if (dts !== false && dts.only) {\n return;\n }\n\n await buildLib(buildConfig, api, { watch });\n};\n\nexport const generatorDts = async (\n config: BaseBuildConfig,\n api: PluginAPI,\n options: {\n watch: boolean;\n dts: DTSOptions;\n },\n) => {\n const { runRollup, runTsc } = await import('./dts');\n const { watch, dts } = options;\n const { buildType, input, sourceDir, alias } = config;\n const { appDirectory } = api.useAppContext();\n const { tsconfigPath, distPath } = dts;\n if (buildType === 'bundle') {\n const { getFinalExternals } = await import('../utils/builder');\n const finalExternals = await getFinalExternals(config, { appDirectory });\n\n await runRollup({\n distDir: distPath,\n watch,\n externals: finalExternals,\n input,\n tsconfigPath,\n });\n } else {\n await runTsc({\n appDirectory,\n alias,\n distAbsPath: distPath,\n watch,\n tsconfigPath,\n sourceDir,\n });\n }\n};\n\nexport const buildLib = async (\n config: BaseBuildConfig,\n api: PluginAPI<ModuleTools>,\n options: {\n watch: boolean;\n },\n) => {\n const { watch } = options;\n const {\n target,\n buildType,\n sourceMap,\n format,\n outDir: distPath,\n asset,\n jsx,\n input,\n platform,\n splitting,\n minify,\n sourceDir,\n umdGlobals,\n umdModuleName,\n define,\n alias,\n style,\n externals,\n autoExternal,\n dts,\n metafile,\n } = config;\n const { appDirectory } = api.useAppContext();\n const { slash } = await import('@modern-js/utils');\n const root = slash(appDirectory);\n const outdir = slash(distPath);\n const assetOutDir = asset.path ? slash(asset.path) : asset.path;\n const { less, sass, postcss, inject, modules, autoModules } = style;\n\n // support es5,umd and emitDecoratorMetadata by swc\n const { es5Plugin, umdPlugin, transformPlugin } = await import(\n '@modern-js/libuild-plugin-swc'\n );\n const plugins = target === 'es5' ? [es5Plugin()] : [];\n if (format === 'umd') {\n plugins.push(umdPlugin(umdModuleName));\n }\n const { getProjectTsconfig } = await import('./dts/tsc');\n const tsconfigPath = dts\n ? dts.tsconfigPath\n : join(appDirectory, './tsconfig.json');\n const userTsconfig = await getProjectTsconfig(tsconfigPath);\n if (userTsconfig?.compilerOptions?.emitDecoratorMetadata) {\n plugins.push(\n transformPlugin({\n jsc: {\n transform: {\n legacyDecorator: true,\n decoratorMetadata: true,\n },\n },\n }),\n );\n }\n\n // support svgr\n if (asset.svgr) {\n const { svgrPlugin } = await import('@modern-js/libuild-plugin-svgr');\n const options = typeof asset.svgr === 'boolean' ? {} : asset.svgr;\n plugins.push(svgrPlugin(options));\n }\n\n // adapt module tools\n const { watchPlugin, externalPlugin } = await import(\n '../utils/libuild-plugins'\n );\n plugins.push(watchPlugin(config));\n plugins.push(externalPlugin(config, { appDirectory }));\n\n const buildConfig: CLIConfig = {\n root,\n watch,\n target,\n sourceMap,\n format,\n outdir,\n define,\n style: {\n less,\n sass,\n postcss,\n inject,\n modules,\n autoModules,\n },\n resolve: {\n alias,\n },\n asset: {\n ...asset,\n outdir: assetOutDir,\n },\n plugins,\n jsx,\n input,\n platform,\n splitting,\n minify,\n sourceDir,\n metafile: metafile && buildType === 'bundle',\n globals: umdGlobals,\n external: externals,\n autoExternal,\n bundle: buildType === 'bundle',\n // outbase for [dir]/[name]\n outbase: sourceDir,\n logLevel: 'error',\n esbuildOptions: (options: any) => ({\n ...options,\n supported: {\n 'dynamic-import': !(\n ['cjs', 'umd'].includes(format) && buildType === 'bundleless'\n ),\n },\n }),\n };\n\n try {\n const { Libuilder } = await import('@modern-js/libuild');\n\n const runner = api.useHookRunners();\n const modifiedBuildConfig = await runner.modifyLibuild(buildConfig, {\n onLast: c => c,\n });\n\n const builder = await Libuilder.create(modifiedBuildConfig);\n await builder.build();\n\n if (watch) {\n const { watchSectionTitle } = await import('../utils/log');\n const { SectionTitleStatus } = await import('../constants/log');\n const titleText = `[${\n buildType === 'bundle' ? 'Bundle' : 'Bundleless'\n }: ${format}_${target}]`;\n\n console.info(\n await watchSectionTitle(titleText, SectionTitleStatus.Success),\n );\n }\n } catch (e: any) {\n const { InternalBuildError } = await import('../error');\n throw new InternalBuildError(e, {\n target,\n format,\n buildType,\n });\n }\n};\n"]}
1
+ {"version":3,"file":null,"mappings":"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","names":["options"],"sources":["../../src/builder/build.ts"],"sourcesContent":["import { join } from 'path';\nimport type { CLIConfig } from '@modern-js/libuild';\nimport type {\n BuildCommandOptions,\n BaseBuildConfig,\n ModuleTools,\n PluginAPI,\n DTSOptions,\n ModuleContext,\n} from '../types';\n\nexport const runBuildTask = async (\n options: {\n buildConfig: BaseBuildConfig;\n buildCmdOptions: BuildCommandOptions;\n context: ModuleContext;\n },\n api: PluginAPI<ModuleTools>,\n) => {\n const { buildConfig, context } = options;\n const { appDirectory, isTsProject } = context;\n\n if (isTsProject) {\n await buildInTsProject(options, api);\n } else {\n await buildInJsProject(options, api);\n }\n\n const { copyTask } = await import('./copy');\n await copyTask(buildConfig, { appDirectory });\n};\n\nexport const buildInTsProject = async (\n options: {\n buildConfig: BaseBuildConfig;\n buildCmdOptions: BuildCommandOptions;\n context: ModuleContext;\n },\n api: PluginAPI<ModuleTools>,\n) => {\n const { buildConfig, buildCmdOptions } = options;\n const dts = buildCmdOptions.dts ? buildConfig.dts : false;\n const skipBuildLib = buildConfig.dts ? buildConfig.dts.only : false;\n const watch = buildCmdOptions.watch ?? false;\n\n if (dts === false) {\n // --no-dts and buildConfig is `{ dts: { only: true } }`, then skip.\n !skipBuildLib && (await buildLib(buildConfig, api, { watch }));\n } else {\n const tasks = dts.only ? [generatorDts] : [buildLib, generatorDts];\n const { default: pMap } = await import('../../compiled/p-map');\n await pMap(tasks, async task => {\n await task(buildConfig, api as any, { watch, dts });\n });\n }\n};\n\nexport const buildInJsProject = async (\n options: {\n buildConfig: BaseBuildConfig;\n buildCmdOptions: BuildCommandOptions;\n context: ModuleContext;\n },\n api: PluginAPI<ModuleTools>,\n) => {\n const { buildConfig, buildCmdOptions } = options;\n const dts = buildCmdOptions.dts ? buildConfig.dts : false;\n const watch = buildCmdOptions.watch ?? false;\n\n if (dts !== false && dts.only) {\n return;\n }\n\n await buildLib(buildConfig, api, { watch });\n};\n\nexport const generatorDts = async (\n config: BaseBuildConfig,\n api: PluginAPI<ModuleTools>,\n options: {\n watch: boolean;\n dts: DTSOptions;\n },\n) => {\n const { runRollup, runTsc } = await import('./dts');\n const { watch, dts } = options;\n const { buildType, input, sourceDir, alias } = config;\n const { appDirectory } = api.useAppContext();\n const { tsconfigPath, distPath } = dts;\n if (buildType === 'bundle') {\n const { getFinalExternals } = await import('../utils/builder');\n const finalExternals = await getFinalExternals(config, { appDirectory });\n\n await runRollup(api, {\n distDir: distPath,\n watch,\n externals: finalExternals,\n input,\n tsconfigPath,\n });\n } else {\n await runTsc(api, {\n appDirectory,\n alias,\n distAbsPath: distPath,\n watch,\n tsconfigPath,\n sourceDir,\n });\n }\n};\n\nexport const buildLib = async (\n config: BaseBuildConfig,\n api: PluginAPI<ModuleTools>,\n options: {\n watch: boolean;\n },\n) => {\n const { watch } = options;\n const {\n target,\n buildType,\n sourceMap,\n format,\n outDir: distPath,\n asset,\n jsx,\n input,\n platform,\n splitting,\n minify,\n sourceDir,\n umdGlobals,\n umdModuleName,\n define,\n alias,\n style,\n externals,\n autoExternal,\n dts,\n metafile,\n } = config;\n const { appDirectory } = api.useAppContext();\n const { slash } = await import('@modern-js/utils');\n const root = slash(appDirectory);\n const outdir = slash(distPath);\n const assetOutDir = asset.path ? slash(asset.path) : asset.path;\n const { less, sass, postcss, inject, modules, autoModules } = style;\n\n // support es5,umd and emitDecoratorMetadata by swc\n const { es5Plugin, umdPlugin, transformPlugin } = await import(\n '@modern-js/libuild-plugin-swc'\n );\n const plugins = target === 'es5' ? [es5Plugin()] : [];\n if (format === 'umd') {\n plugins.push(umdPlugin(umdModuleName));\n }\n const { getProjectTsconfig } = await import('./dts/tsc');\n const tsconfigPath = dts\n ? dts.tsconfigPath\n : join(appDirectory, './tsconfig.json');\n const userTsconfig = await getProjectTsconfig(tsconfigPath);\n if (userTsconfig?.compilerOptions?.emitDecoratorMetadata) {\n plugins.push(\n transformPlugin({\n jsc: {\n transform: {\n legacyDecorator: true,\n decoratorMetadata: true,\n },\n },\n }),\n );\n }\n\n // support svgr\n if (asset.svgr) {\n const { svgrPlugin } = await import('@modern-js/libuild-plugin-svgr');\n const options = typeof asset.svgr === 'boolean' ? {} : asset.svgr;\n plugins.push(svgrPlugin(options));\n }\n\n // adapt module tools\n const { watchPlugin, externalPlugin } = await import(\n '../utils/libuild-plugins'\n );\n plugins.push(watchPlugin(api, config));\n plugins.push(externalPlugin(config, { appDirectory }));\n\n const buildConfig: CLIConfig = {\n root,\n watch,\n target,\n sourceMap,\n format,\n outdir,\n define,\n style: {\n less,\n sass,\n postcss,\n inject,\n modules,\n autoModules,\n },\n resolve: {\n alias,\n },\n asset: {\n ...asset,\n outdir: assetOutDir,\n },\n plugins,\n jsx,\n input,\n platform,\n splitting,\n minify,\n sourceDir,\n metafile: metafile && buildType === 'bundle',\n globals: umdGlobals,\n external: externals,\n autoExternal,\n bundle: buildType === 'bundle',\n // outbase for [dir]/[name]\n outbase: sourceDir,\n logLevel: 'error',\n esbuildOptions: (options: any) => ({\n ...options,\n supported: {\n 'dynamic-import': !(\n ['cjs', 'umd'].includes(format) && buildType === 'bundleless'\n ),\n },\n }),\n };\n\n try {\n const { Libuilder } = await import('@modern-js/libuild');\n\n const runner = api.useHookRunners();\n const modifiedBuildConfig = await runner.modifyLibuild(buildConfig, {\n onLast: c => c,\n });\n\n const builder = await Libuilder.create(modifiedBuildConfig);\n await builder.build();\n\n if (watch) {\n const { watchSectionTitle } = await import('../utils/log');\n const { SectionTitleStatus } = await import('../constants/log');\n const titleText = `[${\n buildType === 'bundle' ? 'Bundle' : 'Bundleless'\n }: ${format}_${target}]`;\n\n console.info(\n await watchSectionTitle(titleText, SectionTitleStatus.Success),\n );\n }\n } catch (e: any) {\n const { InternalBuildError } = await import('../error');\n throw new InternalBuildError(e, {\n target,\n format,\n buildType,\n });\n }\n};\n"]}
@@ -1,5 +1,5 @@
1
1
  import type { RollupWatcher } from '../../../compiled/rollup';
2
- import type { BaseBuildConfig, Input } from '../../types';
2
+ import type { BaseBuildConfig, Input, PluginAPI, ModuleTools } from '../../types';
3
3
  export type { RollupWatcher };
4
4
  type Config = {
5
5
  distDir: string;
@@ -8,7 +8,7 @@ type Config = {
8
8
  input: Input;
9
9
  watch: boolean;
10
10
  };
11
- export declare const runRollup: ({
11
+ export declare const runRollup: (api: PluginAPI<ModuleTools>, {
12
12
  distDir,
13
13
  tsconfigPath,
14
14
  externals,
@@ -64,13 +64,7 @@ __export(rollup_exports, {
64
64
  });
65
65
  module.exports = __toCommonJS(rollup_exports);
66
66
  var import_path = __toESM(require("path"));
67
- const runRollup = (_0) => __async(void 0, [_0], function* ({
68
- distDir,
69
- tsconfigPath,
70
- externals,
71
- input,
72
- watch
73
- }) {
67
+ const runRollup = (_0, _1) => __async(void 0, [_0, _1], function* (api, { distDir, tsconfigPath, externals, input, watch }) {
74
68
  const ignoreFiles = {
75
69
  name: "ignore-files",
76
70
  load(id) {
@@ -123,6 +117,7 @@ const runRollup = (_0) => __async(void 0, [_0], function* ({
123
117
  const { watch: watch2 } = yield Promise.resolve().then(() => __toESM(require("../../../compiled/rollup")));
124
118
  const { watchSectionTitle } = yield Promise.resolve().then(() => __toESM(require("../../utils/log")));
125
119
  const { SectionTitleStatus, BundleDtsLogPrefix } = yield Promise.resolve().then(() => __toESM(require("../../constants/log")));
120
+ const runner = api.useHookRunners();
126
121
  const watcher = watch2(__spreadProps(__spreadValues({}, inputConfig), {
127
122
  plugins: inputConfig.plugins,
128
123
  output: outputConfig
@@ -138,6 +133,7 @@ const runRollup = (_0) => __async(void 0, [_0], function* ({
138
133
  SectionTitleStatus.Success
139
134
  )
140
135
  );
136
+ runner.buildWatchDts({ buildType: "bundle" });
141
137
  } else if (event.code === "ERROR") {
142
138
  }
143
139
  }));
@@ -1 +1 @@
1
- {"version":3,"file":null,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiB;AAmBV,MAAM,YAAY,CAAO,OAMlB,iBANkB,KAMlB,WANkB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAc;AACZ,QAAM,cAAsB;AAAA,IAC1B,MAAM;AAAA,IACN,KAAK,IAAI;AACP,UAAI,CAAC,0BAA0B,KAAK,EAAE,GAAG;AACvC,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACA,QAAM,KAAK,MAAM,6CAAO;AACxB,QAAM,aAAa,GAAG,eAAe,cAAc,GAAG,IAAI,QAAQ;AAClE,QAAM,EAAE,QAAQ,IAAI,GAAG;AAAA,IACrB,WAAW;AAAA,IACX,GAAG;AAAA,IACH;AAAA,EACF;AAEA,QAAM,EAAE,SAAS,WAAW,IAAI,MAAM,6CACpC;AAEF,QAAM,EAAE,SAAS,UAAU,IAAI,MAAM,6CACnC;AAEF,QAAM,UAAU,oBAAK,WAAW,QAAQ,WAAW,GAAG,IAClD,QAAQ,UACR,oBAAK,KAAK,oBAAK,QAAQ,YAAY,GAAG,QAAQ,WAAW,GAAG;AAChE,QAAM,cAA4B;AAAA,IAChC;AAAA,IACA,UAAU;AAAA,IACV,SAAS;AAAA,MACP,WAAW;AAAA,MACX;AAAA,MACA,UAAU;AAAA,QAER,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,UACf,gBAAgB;AAAA,UAChB,cAAc;AAAA,UACd,kBAAkB;AAAA,WACf,UAJY;AAAA,UAMf;AAAA,UAEA,aAAa;AAAA,UAEb,QAAQ;AAAA,UACR,qBAAqB;AAAA,UAErB,eAAe;AAAA,UAEf,SAAS;AAAA,UAET,QAAQ,GAAG,aAAa;AAAA,QAC1B;AAAA,MACF,CAAC;AAAA,IACH,EAAE,OAAO,OAAO;AAAA,EAClB;AACA,QAAM,eAA8B;AAAA,IAClC,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AACA,MAAI,OAAO;AACT,UAAM,EAAE,cAAM,IAAI,MAAM,6CAAO;AAC/B,UAAM,EAAE,kBAAkB,IAAI,MAAM,6CAAO;AAC3C,UAAM,EAAE,oBAAoB,mBAAmB,IAAI,MAAM,6CACvD;AAEF,UAAM,UAAUA,OAAM,iCACjB,cADiB;AAAA,MAEpB,SAAS,YAAY;AAAA,MACrB,QAAQ;AAAA,IACV,EAAC,EAAE,GAAG,SAAS,CAAM,UAAS;AAC5B,UAAI,MAAM,SAAS,SAAS;AAC1B,gBAAQ;AAAA,UACN,MAAM,kBAAkB,oBAAoB,mBAAmB,GAAG;AAAA,QACpE;AAAA,MACF,WAAW,MAAM,SAAS,cAAc;AACtC,gBAAQ;AAAA,UACN,MAAM;AAAA,YACJ;AAAA,YACA,mBAAmB;AAAA,UACrB;AAAA,QACF;AAAA,MACF,WAAW,MAAM,SAAS,SAAS;AAAA,MAEnC;AAAA,IACF,EAAC;AACD,WAAO;AAAA,EACT,OAAO;AACL,QAAI;AACF,YAAM,EAAE,OAAO,IAAI,MAAM,6CAAO;AAChC,YAAM,SAAS,MAAM,OAAO,WAAW;AACvC,YAAM,OAAO,MAAM,YAAY;AAC/B,aAAO;AAAA,IACT,SAAS,GAAP;AACA,UAAI,aAAa,OAAO;AACtB,cAAM,EAAE,iBAAiB,IAAI,MAAM,6CAAO;AAC1C,cAAM,IAAI,iBAAiB,GAAG;AAAA,UAC5B,WAAW;AAAA,QACb,CAAC;AAAA,MACH;AACA,YAAM;AAAA,IACR;AAAA,EACF;AACF;;;;;","names":["watch"],"sources":["../../../src/builder/dts/rollup.ts"],"sourcesContent":["import path from 'path';\nimport type {\n InputOptions,\n OutputOptions,\n Plugin,\n RollupWatcher,\n} from '../../../compiled/rollup';\nimport type { BaseBuildConfig, Input } from '../../types';\n\nexport type { RollupWatcher };\n\ntype Config = {\n distDir: string;\n tsconfigPath: string;\n externals: BaseBuildConfig['externals'];\n input: Input;\n watch: boolean;\n};\n\nexport const runRollup = async ({\n distDir,\n tsconfigPath,\n externals,\n input,\n watch,\n}: Config) => {\n const ignoreFiles: Plugin = {\n name: 'ignore-files',\n load(id) {\n if (!/\\.(js|jsx|ts|tsx|json)$/.test(id)) {\n return '';\n }\n return null;\n },\n };\n const ts = await import('typescript');\n const configFile = ts.readConfigFile(tsconfigPath, ts.sys.readFile);\n const { options } = ts.parseJsonConfigFileContent(\n configFile.config,\n ts.sys,\n './',\n );\n\n const { default: jsonPlugin } = await import(\n '../../../compiled/@rollup/plugin-json'\n );\n const { default: dtsPlugin } = await import(\n '../../../compiled/rollup-plugin-dts'\n );\n const baseUrl = path.isAbsolute(options.baseUrl || '.')\n ? options.baseUrl\n : path.join(path.dirname(tsconfigPath), options.baseUrl || '.');\n const inputConfig: InputOptions = {\n input,\n external: externals,\n plugins: [\n jsonPlugin(),\n ignoreFiles,\n dtsPlugin({\n // use external to prevent them which come from node_modules from be bundled.\n respectExternal: true,\n compilerOptions: {\n declarationMap: false,\n skipLibCheck: true,\n preserveSymlinks: false,\n ...options,\n // isAbsolute\n baseUrl,\n // Ensure \".d.ts\" modules are generated\n declaration: true,\n // Skip \".js\" generation\n noEmit: false,\n emitDeclarationOnly: true,\n // Skip code generation when error occurs\n noEmitOnError: true,\n // Avoid extra work\n checkJs: false,\n // Ensure we can parse the latest code\n target: ts.ScriptTarget.ESNext,\n },\n }),\n ].filter(Boolean),\n };\n const outputConfig: OutputOptions = {\n dir: distDir,\n format: 'esm',\n exports: 'named',\n };\n if (watch) {\n const { watch } = await import('../../../compiled/rollup');\n const { watchSectionTitle } = await import('../../utils/log');\n const { SectionTitleStatus, BundleDtsLogPrefix } = await import(\n '../../constants/log'\n );\n const watcher = watch({\n ...inputConfig,\n plugins: inputConfig.plugins,\n output: outputConfig,\n }).on('event', async event => {\n if (event.code === 'START') {\n console.info(\n await watchSectionTitle(BundleDtsLogPrefix, SectionTitleStatus.Log),\n );\n } else if (event.code === 'BUNDLE_END') {\n console.info(\n await watchSectionTitle(\n BundleDtsLogPrefix,\n SectionTitleStatus.Success,\n ),\n );\n } else if (event.code === 'ERROR') {\n // this is dts rollup plugin bug, error not complete message\n }\n });\n return watcher;\n } else {\n try {\n const { rollup } = await import('../../../compiled/rollup');\n const bundle = await rollup(inputConfig);\n await bundle.write(outputConfig);\n return bundle;\n } catch (e) {\n if (e instanceof Error) {\n const { InternalDTSError } = await import('../../error');\n throw new InternalDTSError(e, {\n buildType: 'bundle',\n });\n }\n throw e;\n }\n }\n};\n"]}
1
+ {"version":3,"file":null,"mappings":"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","names":["watch"],"sources":["../../../src/builder/dts/rollup.ts"],"sourcesContent":["import path from 'path';\nimport type {\n InputOptions,\n OutputOptions,\n Plugin,\n RollupWatcher,\n} from '../../../compiled/rollup';\nimport type {\n BaseBuildConfig,\n Input,\n PluginAPI,\n ModuleTools,\n} from '../../types';\n\nexport type { RollupWatcher };\n\ntype Config = {\n distDir: string;\n tsconfigPath: string;\n externals: BaseBuildConfig['externals'];\n input: Input;\n watch: boolean;\n};\n\nexport const runRollup = async (\n api: PluginAPI<ModuleTools>,\n { distDir, tsconfigPath, externals, input, watch }: Config,\n) => {\n const ignoreFiles: Plugin = {\n name: 'ignore-files',\n load(id) {\n if (!/\\.(js|jsx|ts|tsx|json)$/.test(id)) {\n return '';\n }\n return null;\n },\n };\n const ts = await import('typescript');\n const configFile = ts.readConfigFile(tsconfigPath, ts.sys.readFile);\n const { options } = ts.parseJsonConfigFileContent(\n configFile.config,\n ts.sys,\n './',\n );\n\n const { default: jsonPlugin } = await import(\n '../../../compiled/@rollup/plugin-json'\n );\n const { default: dtsPlugin } = await import(\n '../../../compiled/rollup-plugin-dts'\n );\n const baseUrl = path.isAbsolute(options.baseUrl || '.')\n ? options.baseUrl\n : path.join(path.dirname(tsconfigPath), options.baseUrl || '.');\n const inputConfig: InputOptions = {\n input,\n external: externals,\n plugins: [\n jsonPlugin(),\n ignoreFiles,\n dtsPlugin({\n // use external to prevent them which come from node_modules from be bundled.\n respectExternal: true,\n compilerOptions: {\n declarationMap: false,\n skipLibCheck: true,\n preserveSymlinks: false,\n ...options,\n // isAbsolute\n baseUrl,\n // Ensure \".d.ts\" modules are generated\n declaration: true,\n // Skip \".js\" generation\n noEmit: false,\n emitDeclarationOnly: true,\n // Skip code generation when error occurs\n noEmitOnError: true,\n // Avoid extra work\n checkJs: false,\n // Ensure we can parse the latest code\n target: ts.ScriptTarget.ESNext,\n },\n }),\n ].filter(Boolean),\n };\n const outputConfig: OutputOptions = {\n dir: distDir,\n format: 'esm',\n exports: 'named',\n };\n if (watch) {\n const { watch } = await import('../../../compiled/rollup');\n const { watchSectionTitle } = await import('../../utils/log');\n const { SectionTitleStatus, BundleDtsLogPrefix } = await import(\n '../../constants/log'\n );\n const runner = api.useHookRunners();\n const watcher = watch({\n ...inputConfig,\n plugins: inputConfig.plugins,\n output: outputConfig,\n }).on('event', async event => {\n if (event.code === 'START') {\n console.info(\n await watchSectionTitle(BundleDtsLogPrefix, SectionTitleStatus.Log),\n );\n } else if (event.code === 'BUNDLE_END') {\n console.info(\n await watchSectionTitle(\n BundleDtsLogPrefix,\n SectionTitleStatus.Success,\n ),\n );\n runner.buildWatchDts({ buildType: 'bundle' });\n } else if (event.code === 'ERROR') {\n // this is dts rollup plugin bug, error not complete message\n }\n });\n return watcher;\n } else {\n try {\n const { rollup } = await import('../../../compiled/rollup');\n const bundle = await rollup(inputConfig);\n await bundle.write(outputConfig);\n return bundle;\n } catch (e) {\n if (e instanceof Error) {\n const { InternalDTSError } = await import('../../error');\n throw new InternalDTSError(e, {\n buildType: 'bundle',\n });\n }\n throw e;\n }\n }\n};\n"]}
@@ -0,0 +1 @@
1
+ export {};
File without changes
@@ -1,3 +1,3 @@
1
- import type { BundlelessGeneratorDtsConfig, ITsconfig } from '../../types';
1
+ import type { BundlelessGeneratorDtsConfig, ITsconfig, PluginAPI, ModuleTools } from '../../types';
2
2
  export declare const getProjectTsconfig: (tsconfigPath: string) => Promise<ITsconfig>;
3
- export declare const runTsc: (config: BundlelessGeneratorDtsConfig) => Promise<void>;
3
+ export declare const runTsc: (api: PluginAPI<ModuleTools>, config: BundlelessGeneratorDtsConfig) => Promise<void>;
@@ -97,14 +97,14 @@ const resolveLog = (childProgress, options) => __async(void 0, null, function* (
97
97
  console.error(chunk.toString());
98
98
  });
99
99
  });
100
- const generatorDts = (config) => __async(void 0, null, function* () {
100
+ const generatorDts = (api, config) => __async(void 0, null, function* () {
101
101
  const { execa } = yield Promise.resolve().then(() => __toESM(require("@modern-js/utils")));
102
102
  const { InternalDTSError } = yield Promise.resolve().then(() => __toESM(require("../../error")));
103
103
  const { generatorTsConfig } = yield Promise.resolve().then(() => __toESM(require("../../utils/dts")));
104
104
  const { getTscBinPath } = yield Promise.resolve().then(() => __toESM(require("../../utils/dts")));
105
105
  const { tsconfigPath, appDirectory, watch = false } = config;
106
106
  const userTsconfig = yield getProjectTsconfig(tsconfigPath);
107
- const result = yield generatorTsConfig(userTsconfig, config);
107
+ const result = yield generatorTsConfig(config);
108
108
  const tscBinFile = yield getTscBinPath(appDirectory);
109
109
  const watchParams = watch ? ["-w"] : [];
110
110
  const childProgress = execa(
@@ -121,11 +121,13 @@ const generatorDts = (config) => __async(void 0, null, function* () {
121
121
  cwd: appDirectory
122
122
  }
123
123
  );
124
+ const runner = api.useHookRunners();
124
125
  resolveLog(childProgress, {
125
126
  watch,
126
127
  watchFn: () => __async(void 0, null, function* () {
127
128
  const { resolveAlias } = yield Promise.resolve().then(() => __toESM(require("../../utils/dts")));
128
129
  yield resolveAlias(config, __spreadProps(__spreadValues({}, result), { userTsconfig }));
130
+ runner.buildWatchDts({ buildType: "bundleless" });
129
131
  })
130
132
  });
131
133
  try {
@@ -139,9 +141,9 @@ const generatorDts = (config) => __async(void 0, null, function* () {
139
141
  }
140
142
  return __spreadProps(__spreadValues({}, result), { userTsconfig });
141
143
  });
142
- const runTsc = (config) => __async(void 0, null, function* () {
144
+ const runTsc = (api, config) => __async(void 0, null, function* () {
143
145
  const { resolveAlias } = yield Promise.resolve().then(() => __toESM(require("../../utils/dts")));
144
- const result = yield generatorDts(config);
146
+ const result = yield generatorDts(api, config);
145
147
  yield resolveAlias(config, result);
146
148
  });
147
149
  // Annotate the CommonJS export names for ESM import in node:
@@ -1 +1 @@
1
- {"version":3,"file":null,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,qBAAqB,CAChC,iBACuB;AACvB,QAAM,EAAE,OAAO,GAAG,IAAI,MAAM,6CAAO;AACnC,MAAI,CAAC,GAAG,WAAW,YAAY,GAAG;AAChC,WAAO,CAAC;AAAA,EACV;AAEA,SAAO,MAAM,MAAM,GAAG,aAAa,cAAc,OAAO,CAAC;AAC3D;AAEA,MAAM,aAAa,CACjB,eACA,YAIG;AApBL;AAqBE,QAAM,EAAE,QAAQ,OAAO,UAAU,MAAS;AAAG;AAAA,KAAU,IAAI;AAC3D,QAAM,EAAE,oBAAoB,uBAAuB,IAAI,MAAM,6CAC3D;AAEF,QAAM,EAAE,kBAAkB,IAAI,MAAM,6CAAO;AAC3C,QAAM,EAAE,cAAc,IAAI,MAAM,6CAAO;AAOvC,sBAAc,WAAd,mBAAsB,GAAG,QAAQ,CAAM,SAAQ;AAC7C,QAAI,OAAO;AACT,cAAQ;AAAA,QACN,MAAM,kBAAkB,wBAAwB,mBAAmB,GAAG;AAAA,MACxE;AACA,cAAQ,KAAK,KAAK,SAAS,CAAC;AAC5B,UAAI,KAAK,SAAS,EAAE,SAAS,aAAa,GAAG;AAC3C,cAAM,QAAQ;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAEA,sBAAc,WAAd,mBAAsB,GAAG,SAAS,WAAS;AACzC,YAAQ,MAAM,MAAM,OAAO;AAAA,EAC7B;AACA,sBAAc,WAAd,mBAAsB,GAAG,QAAQ,WAAS;AACxC,YAAQ,MAAM,MAAM,SAAS,CAAC;AAAA,EAChC;AACF;AAEA,MAAM,eAAe,CAAO,WAAyC;AACnE,QAAM,EAAE,MAAM,IAAI,MAAM,6CAAO;AAC/B,QAAM,EAAE,iBAAiB,IAAI,MAAM,6CAAO;AAC1C,QAAM,EAAE,kBAAkB,IAAI,MAAM,6CAAO;AAC3C,QAAM,EAAE,cAAc,IAAI,MAAM,6CAAO;AACvC,QAAM,EAAE,cAAc,cAAc,QAAQ,MAAM,IAAI;AACtD,QAAM,eAAe,MAAM,mBAAmB,YAAY;AAC1D,QAAM,SAAS,MAAM,kBAAkB,cAAc,MAAM;AAE3D,QAAM,aAAa,MAAM,cAAc,YAAY;AAEnD,QAAM,cAAc,QAAQ,CAAC,IAAI,IAAI,CAAC;AACtC,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA;AAAA,MACE;AAAA,MACA,OAAO;AAAA,MAEP;AAAA,MAEA;AAAA,MACA,GAAG;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,KAAK;AAAA,IACP;AAAA,EACF;AAEA,aAAW,eAAe;AAAA,IACxB;AAAA,IACA,SAAS,MAAY;AACnB,YAAM,EAAE,aAAa,IAAI,MAAM,6CAAO;AACtC,YAAM,aAAa,QAAQ,iCAAK,SAAL,EAAa,aAAa,EAAC;AAAA,IACxD;AAAA,EACF,CAAC;AAED,MAAI;AACF,UAAM;AAAA,EACR,SAAS,GAAP;AACA,QAAI,aAAa,OAAO;AACtB,YAAM,IAAI,iBAAiB,GAAG;AAAA,QAC5B,WAAW;AAAA,MACb,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO,iCAAK,SAAL,EAAa,aAAa;AACnC;AAEO,MAAM,SAAS,CAAO,WAAyC;AACpE,QAAM,EAAE,aAAa,IAAI,MAAM,6CAAO;AACtC,QAAM,SAAS,MAAM,aAAa,MAAM;AACxC,QAAM,aAAa,QAAQ,MAAM;AACnC;;;;;;","names":[],"sources":["../../../src/builder/dts/tsc.ts"],"sourcesContent":["import type { ChildProcess } from 'child_process';\nimport type { BundlelessGeneratorDtsConfig, ITsconfig } from '../../types';\n\nexport const getProjectTsconfig = async (\n tsconfigPath: string,\n): Promise<ITsconfig> => {\n const { json5, fs } = await import('@modern-js/utils');\n if (!fs.existsSync(tsconfigPath)) {\n return {};\n }\n\n return json5.parse(fs.readFileSync(tsconfigPath, 'utf-8'));\n};\n\nconst resolveLog = async (\n childProgress: ChildProcess,\n options: {\n watch: boolean;\n watchFn: () => Promise<void>;\n },\n) => {\n const { watch = false, watchFn = async () => undefined } = options;\n const { SectionTitleStatus, BundlelessDtsLogPrefix } = await import(\n '../../constants/log'\n );\n const { watchSectionTitle } = await import('../../utils/log');\n const { watchDoneText } = await import('../../constants/dts');\n\n /**\n * tsc 所有的log信息都是从stdout data 事件中获取\n * 正常模式下,如果有报错信息,交给 resolveLog 后面的逻辑来处理\n * watch 模式下,则使用这里的信息\n */\n childProgress.stdout?.on('data', async data => {\n if (watch) {\n console.info(\n await watchSectionTitle(BundlelessDtsLogPrefix, SectionTitleStatus.Log),\n );\n console.info(data.toString());\n if (data.toString().includes(watchDoneText)) {\n await watchFn();\n }\n }\n });\n // 正常以下内容都不会触发,因为tsc 不会产生以下类型的log信息,不过防止意外情况\n childProgress.stdout?.on('error', error => {\n console.error(error.message);\n });\n childProgress.stderr?.on('data', chunk => {\n console.error(chunk.toString());\n });\n};\n\nconst generatorDts = async (config: BundlelessGeneratorDtsConfig) => {\n const { execa } = await import('@modern-js/utils');\n const { InternalDTSError } = await import('../../error');\n const { generatorTsConfig } = await import('../../utils/dts');\n const { getTscBinPath } = await import('../../utils/dts');\n const { tsconfigPath, appDirectory, watch = false } = config;\n const userTsconfig = await getProjectTsconfig(tsconfigPath);\n const result = await generatorTsConfig(userTsconfig, config);\n\n const tscBinFile = await getTscBinPath(appDirectory);\n\n const watchParams = watch ? ['-w'] : [];\n const childProgress = execa(\n tscBinFile,\n [\n '-p',\n result.tempTsconfigPath,\n /* Required parameter, use it stdout have color */\n '--pretty',\n // https://github.com/microsoft/TypeScript/issues/21824\n '--preserveWatchOutput',\n ...watchParams,\n ],\n {\n stdio: 'pipe',\n cwd: appDirectory,\n },\n );\n\n resolveLog(childProgress, {\n watch,\n watchFn: async () => {\n const { resolveAlias } = await import('../../utils/dts');\n await resolveAlias(config, { ...result, userTsconfig });\n },\n });\n\n try {\n await childProgress;\n } catch (e) {\n if (e instanceof Error) {\n throw new InternalDTSError(e, {\n buildType: 'bundleless',\n });\n }\n }\n\n return { ...result, userTsconfig };\n};\n\nexport const runTsc = async (config: BundlelessGeneratorDtsConfig) => {\n const { resolveAlias } = await import('../../utils/dts');\n const result = await generatorDts(config);\n await resolveAlias(config, result);\n};\n"]}
1
+ {"version":3,"file":null,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQO,MAAM,qBAAqB,CAChC,iBACuB;AACvB,QAAM,EAAE,OAAO,GAAG,IAAI,MAAM,6CAAO;AACnC,MAAI,CAAC,GAAG,WAAW,YAAY,GAAG;AAChC,WAAO,CAAC;AAAA,EACV;AAEA,SAAO,MAAM,MAAM,GAAG,aAAa,cAAc,OAAO,CAAC;AAC3D;AAEA,MAAM,aAAa,CACjB,eACA,YAIG;AAzBL;AA0BE,QAAM,EAAE,QAAQ,OAAO,UAAU,MAAS;AAAG;AAAA,KAAU,IAAI;AAC3D,QAAM,EAAE,oBAAoB,uBAAuB,IAAI,MAAM,6CAC3D;AAEF,QAAM,EAAE,kBAAkB,IAAI,MAAM,6CAAO;AAC3C,QAAM,EAAE,cAAc,IAAI,MAAM,6CAAO;AAOvC,sBAAc,WAAd,mBAAsB,GAAG,QAAQ,CAAM,SAAQ;AAC7C,QAAI,OAAO;AACT,cAAQ;AAAA,QACN,MAAM,kBAAkB,wBAAwB,mBAAmB,GAAG;AAAA,MACxE;AACA,cAAQ,KAAK,KAAK,SAAS,CAAC;AAC5B,UAAI,KAAK,SAAS,EAAE,SAAS,aAAa,GAAG;AAC3C,cAAM,QAAQ;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AAEA,sBAAc,WAAd,mBAAsB,GAAG,SAAS,WAAS;AACzC,YAAQ,MAAM,MAAM,OAAO;AAAA,EAC7B;AACA,sBAAc,WAAd,mBAAsB,GAAG,QAAQ,WAAS;AACxC,YAAQ,MAAM,MAAM,SAAS,CAAC;AAAA,EAChC;AACF;AAEA,MAAM,eAAe,CACnB,KACA,WACG;AACH,QAAM,EAAE,MAAM,IAAI,MAAM,6CAAO;AAC/B,QAAM,EAAE,iBAAiB,IAAI,MAAM,6CAAO;AAC1C,QAAM,EAAE,kBAAkB,IAAI,MAAM,6CAAO;AAC3C,QAAM,EAAE,cAAc,IAAI,MAAM,6CAAO;AACvC,QAAM,EAAE,cAAc,cAAc,QAAQ,MAAM,IAAI;AACtD,QAAM,eAAe,MAAM,mBAAmB,YAAY;AAC1D,QAAM,SAAS,MAAM,kBAAkB,MAAM;AAE7C,QAAM,aAAa,MAAM,cAAc,YAAY;AAEnD,QAAM,cAAc,QAAQ,CAAC,IAAI,IAAI,CAAC;AACtC,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA;AAAA,MACE;AAAA,MACA,OAAO;AAAA,MAEP;AAAA,MAEA;AAAA,MACA,GAAG;AAAA,IACL;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,KAAK;AAAA,IACP;AAAA,EACF;AAEA,QAAM,SAAS,IAAI,eAAe;AAClC,aAAW,eAAe;AAAA,IACxB;AAAA,IACA,SAAS,MAAY;AACnB,YAAM,EAAE,aAAa,IAAI,MAAM,6CAAO;AACtC,YAAM,aAAa,QAAQ,iCAAK,SAAL,EAAa,aAAa,EAAC;AACtD,aAAO,cAAc,EAAE,WAAW,aAAa,CAAC;AAAA,IAClD;AAAA,EACF,CAAC;AAED,MAAI;AACF,UAAM;AAAA,EACR,SAAS,GAAP;AACA,QAAI,aAAa,OAAO;AACtB,YAAM,IAAI,iBAAiB,GAAG;AAAA,QAC5B,WAAW;AAAA,MACb,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO,iCAAK,SAAL,EAAa,aAAa;AACnC;AAEO,MAAM,SAAS,CACpB,KACA,WACG;AACH,QAAM,EAAE,aAAa,IAAI,MAAM,6CAAO;AACtC,QAAM,SAAS,MAAM,aAAa,KAAK,MAAM;AAC7C,QAAM,aAAa,QAAQ,MAAM;AACnC;;;;;;","names":[],"sources":["../../../src/builder/dts/tsc.ts"],"sourcesContent":["import type { ChildProcess } from 'child_process';\nimport type {\n BundlelessGeneratorDtsConfig,\n ITsconfig,\n PluginAPI,\n ModuleTools,\n} from '../../types';\n\nexport const getProjectTsconfig = async (\n tsconfigPath: string,\n): Promise<ITsconfig> => {\n const { json5, fs } = await import('@modern-js/utils');\n if (!fs.existsSync(tsconfigPath)) {\n return {};\n }\n\n return json5.parse(fs.readFileSync(tsconfigPath, 'utf-8'));\n};\n\nconst resolveLog = async (\n childProgress: ChildProcess,\n options: {\n watch: boolean;\n watchFn: () => Promise<void>;\n },\n) => {\n const { watch = false, watchFn = async () => undefined } = options;\n const { SectionTitleStatus, BundlelessDtsLogPrefix } = await import(\n '../../constants/log'\n );\n const { watchSectionTitle } = await import('../../utils/log');\n const { watchDoneText } = await import('../../constants/dts');\n\n /**\n * tsc 所有的log信息都是从stdout data 事件中获取\n * 正常模式下,如果有报错信息,交给 resolveLog 后面的逻辑来处理\n * watch 模式下,则使用这里的信息\n */\n childProgress.stdout?.on('data', async data => {\n if (watch) {\n console.info(\n await watchSectionTitle(BundlelessDtsLogPrefix, SectionTitleStatus.Log),\n );\n console.info(data.toString());\n if (data.toString().includes(watchDoneText)) {\n await watchFn();\n }\n }\n });\n // 正常以下内容都不会触发,因为tsc 不会产生以下类型的log信息,不过防止意外情况\n childProgress.stdout?.on('error', error => {\n console.error(error.message);\n });\n childProgress.stderr?.on('data', chunk => {\n console.error(chunk.toString());\n });\n};\n\nconst generatorDts = async (\n api: PluginAPI<ModuleTools>,\n config: BundlelessGeneratorDtsConfig,\n) => {\n const { execa } = await import('@modern-js/utils');\n const { InternalDTSError } = await import('../../error');\n const { generatorTsConfig } = await import('../../utils/dts');\n const { getTscBinPath } = await import('../../utils/dts');\n const { tsconfigPath, appDirectory, watch = false } = config;\n const userTsconfig = await getProjectTsconfig(tsconfigPath);\n const result = await generatorTsConfig(config);\n\n const tscBinFile = await getTscBinPath(appDirectory);\n\n const watchParams = watch ? ['-w'] : [];\n const childProgress = execa(\n tscBinFile,\n [\n '-p',\n result.tempTsconfigPath,\n /* Required parameter, use it stdout have color */\n '--pretty',\n // https://github.com/microsoft/TypeScript/issues/21824\n '--preserveWatchOutput',\n ...watchParams,\n ],\n {\n stdio: 'pipe',\n cwd: appDirectory,\n },\n );\n\n const runner = api.useHookRunners();\n resolveLog(childProgress, {\n watch,\n watchFn: async () => {\n const { resolveAlias } = await import('../../utils/dts');\n await resolveAlias(config, { ...result, userTsconfig });\n runner.buildWatchDts({ buildType: 'bundleless' });\n },\n });\n\n try {\n await childProgress;\n } catch (e) {\n if (e instanceof Error) {\n throw new InternalDTSError(e, {\n buildType: 'bundleless',\n });\n }\n }\n\n return { ...result, userTsconfig };\n};\n\nexport const runTsc = async (\n api: PluginAPI<ModuleTools>,\n config: BundlelessGeneratorDtsConfig,\n) => {\n const { resolveAlias } = await import('../../utils/dts');\n const result = await generatorDts(api, config);\n await resolveAlias(config, result);\n};\n"]}
package/dist/command.js CHANGED
@@ -108,16 +108,20 @@ const devCommand = (program, api) => __async(void 0, null, function* () {
108
108
  }
109
109
  for (const subCmd of meta.subCommands) {
110
110
  devProgram.command(subCmd).action((options) => __async(void 0, null, function* () {
111
- var _a;
111
+ var _a, _b;
112
112
  const { initModuleContext } = yield Promise.resolve().then(() => __toESM(require("./utils/context")));
113
113
  const context = yield initModuleContext(api);
114
- const { runBuildBeforeDevTools } = yield Promise.resolve().then(() => __toESM(require("./dev")));
115
- yield runBuildBeforeDevTools(api, context, options, {
114
+ const { ensureFirstBuild, watchBuild } = yield Promise.resolve().then(() => __toESM(require("./dev")));
115
+ yield ensureFirstBuild(api, context, options, {
116
116
  disableRunBuild: (_a = meta.disableRunBuild) != null ? _a : false,
117
117
  appDirectory: context.appDirectory
118
118
  });
119
119
  yield runner.beforeDevTask(meta);
120
120
  yield meta.action(options, { isTsProject: context.isTsProject });
121
+ yield watchBuild(api, context, options, {
122
+ disableRunBuild: (_b = meta.disableRunBuild) != null ? _b : false,
123
+ appDirectory: context.appDirectory
124
+ });
121
125
  }));
122
126
  }
123
127
  }
@@ -1 +1 @@
1
- {"version":3,"file":null,"mappings":"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","names":[],"sources":["../src/command.ts"],"sourcesContent":["import type { Command } from '@modern-js/utils';\nimport type { PluginAPI } from '@modern-js/core';\nimport type { ModuleTools } from './types';\nimport type { DevCommandOptions, BuildCommandOptions } from './types/command';\n\nexport const buildCommand = async (\n program: Command,\n api: PluginAPI<ModuleTools>,\n) => {\n const local = await import('./locale');\n const { defaultTsConfigPath } = await import('./constants/dts');\n\n program\n .command('build')\n .usage('[options]')\n .description(local.i18n.t(local.localeKeys.command.build.describe))\n .option('-w, --watch', local.i18n.t(local.localeKeys.command.build.watch))\n .option(\n '--tsconfig [tsconfig]',\n local.i18n.t(local.localeKeys.command.build.tsconfig),\n defaultTsConfigPath,\n )\n .option(\n '-p, --platform [platform...]',\n local.i18n.t(local.localeKeys.command.build.platform),\n )\n .option('--no-dts', local.i18n.t(local.localeKeys.command.build.dts))\n .option('--no-clear', local.i18n.t(local.localeKeys.command.build.no_clear))\n .option(\n '-c --config <config>',\n local.i18n.t(local.localeKeys.command.build.config),\n )\n .action(async (options: BuildCommandOptions) => {\n const { initModuleContext } = await import('./utils/context');\n const context = await initModuleContext(api);\n const { build } = await import('./build');\n await build(api, options, context);\n });\n};\n\nexport const devCommand = async (\n program: Command,\n api: PluginAPI<ModuleTools>,\n) => {\n const local = await import('./locale');\n const { defaultTsConfigPath } = await import('./constants/dts');\n const runner = api.useHookRunners();\n const devToolMetas = await runner.registerDev();\n\n await runner.beforeDev(devToolMetas);\n\n const devProgram = program\n .command('dev')\n .usage('[options]')\n .description(local.i18n.t(local.localeKeys.command.dev.describe))\n .option(\n '--tsconfig [tsconfig]',\n local.i18n.t(local.localeKeys.command.dev.tsconfig),\n defaultTsConfigPath,\n )\n .action(async (options: DevCommandOptions) => {\n const { initModuleContext } = await import('./utils/context');\n const context = await initModuleContext(api);\n const { dev } = await import('./dev');\n await dev(options, devToolMetas, api, context);\n });\n\n for (const meta of devToolMetas) {\n if (!meta.subCommands) {\n continue;\n }\n\n for (const subCmd of meta.subCommands) {\n devProgram.command(subCmd).action(async (options: DevCommandOptions) => {\n const { initModuleContext } = await import('./utils/context');\n const context = await initModuleContext(api);\n const { runBuildBeforeDevTools } = await import('./dev');\n\n await runBuildBeforeDevTools(api, context, options, {\n disableRunBuild: meta.disableRunBuild ?? false,\n appDirectory: context.appDirectory,\n });\n\n await runner.beforeDevTask(meta);\n await meta.action(options, { isTsProject: context.isTsProject });\n });\n }\n }\n};\n\nexport const newCommand = async (program: Command) => {\n const local = await import('./locale');\n\n program\n .command('new')\n .usage('[options]')\n .description(local.i18n.t(local.localeKeys.command.new.describe))\n .option(\n '-d, --debug',\n local.i18n.t(local.localeKeys.command.new.debug),\n false,\n )\n .option(\n '-c, --config <config>',\n local.i18n.t(local.localeKeys.command.new.config),\n )\n .option(\n '--dist-tag <tag>',\n local.i18n.t(local.localeKeys.command.new.distTag),\n )\n .option('--lang <lang>', local.i18n.t(local.localeKeys.command.new.lang))\n .option('--registry', local.i18n.t(local.localeKeys.command.new.registry))\n .action(async options => {\n const { ModuleNewAction } = await import('@modern-js/new-action');\n const { getLocaleLanguage } = await import('./utils/language');\n const locale = getLocaleLanguage();\n\n await ModuleNewAction({ ...options, locale: options.lang || locale });\n });\n};\n\nexport const upgradCommand = async (program: Command) => {\n const { defineCommand } = await import('@modern-js/upgrade');\n defineCommand(program.command('upgrade'));\n};\n"]}
1
+ {"version":3,"file":null,"mappings":"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","names":[],"sources":["../src/command.ts"],"sourcesContent":["import type { Command } from '@modern-js/utils';\nimport type { PluginAPI } from '@modern-js/core';\nimport type { ModuleTools } from './types';\nimport type { DevCommandOptions, BuildCommandOptions } from './types/command';\n\nexport const buildCommand = async (\n program: Command,\n api: PluginAPI<ModuleTools>,\n) => {\n const local = await import('./locale');\n const { defaultTsConfigPath } = await import('./constants/dts');\n\n program\n .command('build')\n .usage('[options]')\n .description(local.i18n.t(local.localeKeys.command.build.describe))\n .option('-w, --watch', local.i18n.t(local.localeKeys.command.build.watch))\n .option(\n '--tsconfig [tsconfig]',\n local.i18n.t(local.localeKeys.command.build.tsconfig),\n defaultTsConfigPath,\n )\n .option(\n '-p, --platform [platform...]',\n local.i18n.t(local.localeKeys.command.build.platform),\n )\n .option('--no-dts', local.i18n.t(local.localeKeys.command.build.dts))\n .option('--no-clear', local.i18n.t(local.localeKeys.command.build.no_clear))\n .option(\n '-c --config <config>',\n local.i18n.t(local.localeKeys.command.build.config),\n )\n .action(async (options: BuildCommandOptions) => {\n const { initModuleContext } = await import('./utils/context');\n const context = await initModuleContext(api);\n const { build } = await import('./build');\n await build(api, options, context);\n });\n};\n\nexport const devCommand = async (\n program: Command,\n api: PluginAPI<ModuleTools>,\n) => {\n const local = await import('./locale');\n const { defaultTsConfigPath } = await import('./constants/dts');\n const runner = api.useHookRunners();\n const devToolMetas = await runner.registerDev();\n\n await runner.beforeDev(devToolMetas);\n\n const devProgram = program\n .command('dev')\n .usage('[options]')\n .description(local.i18n.t(local.localeKeys.command.dev.describe))\n .option(\n '--tsconfig [tsconfig]',\n local.i18n.t(local.localeKeys.command.dev.tsconfig),\n defaultTsConfigPath,\n )\n .action(async (options: DevCommandOptions) => {\n const { initModuleContext } = await import('./utils/context');\n const context = await initModuleContext(api);\n const { dev } = await import('./dev');\n await dev(options, devToolMetas, api, context);\n });\n\n for (const meta of devToolMetas) {\n if (!meta.subCommands) {\n continue;\n }\n\n for (const subCmd of meta.subCommands) {\n devProgram.command(subCmd).action(async (options: DevCommandOptions) => {\n const { initModuleContext } = await import('./utils/context');\n const context = await initModuleContext(api);\n const { ensureFirstBuild, watchBuild } = await import('./dev');\n\n await ensureFirstBuild(api, context, options, {\n disableRunBuild: meta.disableRunBuild ?? false,\n appDirectory: context.appDirectory,\n });\n\n await runner.beforeDevTask(meta);\n await meta.action(options, { isTsProject: context.isTsProject });\n\n await watchBuild(api, context, options, {\n disableRunBuild: meta.disableRunBuild ?? false,\n appDirectory: context.appDirectory,\n });\n });\n }\n }\n};\n\nexport const newCommand = async (program: Command) => {\n const local = await import('./locale');\n\n program\n .command('new')\n .usage('[options]')\n .description(local.i18n.t(local.localeKeys.command.new.describe))\n .option(\n '-d, --debug',\n local.i18n.t(local.localeKeys.command.new.debug),\n false,\n )\n .option(\n '-c, --config <config>',\n local.i18n.t(local.localeKeys.command.new.config),\n )\n .option(\n '--dist-tag <tag>',\n local.i18n.t(local.localeKeys.command.new.distTag),\n )\n .option('--lang <lang>', local.i18n.t(local.localeKeys.command.new.lang))\n .option('--registry', local.i18n.t(local.localeKeys.command.new.registry))\n .action(async options => {\n const { ModuleNewAction } = await import('@modern-js/new-action');\n const { getLocaleLanguage } = await import('./utils/language');\n const locale = getLocaleLanguage();\n\n await ModuleNewAction({ ...options, locale: options.lang || locale });\n });\n};\n\nexport const upgradCommand = async (program: Command) => {\n const { defineCommand } = await import('@modern-js/upgrade');\n defineCommand(program.command('upgrade'));\n};\n"]}
@@ -71,10 +71,7 @@ const transformBuildPresetToBaseConfigs = (options, preset) => __async(void 0, n
71
71
  options
72
72
  );
73
73
  }
74
- return transformBuildConfigToBaseConfigs(
75
- yield addInputToPreset(presetList["npm-library"], options.context),
76
- options
77
- );
74
+ return transformBuildConfigToBaseConfigs({}, options);
78
75
  });
79
76
  const transformBuildConfigToBaseConfigs = (config, options) => __async(void 0, null, function* () {
80
77
  const { validPartialBuildConfig } = yield Promise.resolve().then(() => __toESM(require("../utils/config")));
@@ -1 +1 @@
1
- {"version":3,"file":null,"mappings":"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","names":["config"],"sources":["../../src/config/normalize.ts"],"sourcesContent":["import path from 'path';\nimport type { PluginAPI } from '@modern-js/core';\nimport type {\n ModuleUserConfig,\n ModuleLegacyUserConfig,\n BaseBuildConfig,\n BuildPreset,\n PartialBuildConfig,\n PartialBaseBuildConfig,\n ModuleContext,\n BuildCommandOptions,\n ModuleTools,\n} from '../types';\n\nexport const transformBuildPresetToBaseConfigs = async (\n options: {\n context: ModuleContext;\n buildCmdOptions: BuildCommandOptions;\n },\n preset?: BuildPreset,\n): Promise<BaseBuildConfig[]> => {\n const { BuildInPreset, presetList } = await import(\n '../constants/build-presets'\n );\n const { addInputToPreset } = await import('../utils/input');\n\n if (typeof preset === 'function') {\n const partialBuildConfig = await preset({ preset: BuildInPreset });\n\n if (!partialBuildConfig) {\n throw new Error(\n 'The `buildPreset` function does not allow no return value',\n );\n }\n\n return transformBuildConfigToBaseConfigs(partialBuildConfig, options);\n }\n\n const inPresetList = (p: string): p is keyof typeof presetList =>\n p in presetList;\n\n if (preset && inPresetList(preset)) {\n return transformBuildConfigToBaseConfigs(\n await addInputToPreset(presetList[preset], options.context),\n options,\n );\n }\n\n // buildConfig and buildPreset is undefined\n return transformBuildConfigToBaseConfigs(\n await addInputToPreset(presetList['npm-library'], options.context),\n options,\n );\n};\n\nexport const transformBuildConfigToBaseConfigs = async (\n config: PartialBuildConfig,\n options: {\n buildCmdOptions: BuildCommandOptions;\n context: ModuleContext;\n },\n): Promise<BaseBuildConfig[]> => {\n const { validPartialBuildConfig } = await import('../utils/config');\n validPartialBuildConfig(config);\n const { buildCmdOptions } = options;\n const { ensureArray } = await import('@modern-js/utils');\n const { assignTsConfigPath } = await import('../utils/dts');\n const partialConfigs = ensureArray(config);\n const configs = await Promise.all(\n partialConfigs.map(async config => {\n let newConfig = await requiredBuildConfig(config, options.context);\n newConfig = await assignTsConfigPath(newConfig, buildCmdOptions);\n newConfig = await transformToAbsPath(newConfig, options);\n return newConfig;\n }),\n );\n return configs;\n};\n\nexport const requiredBuildConfig = async (\n partialBuildConfig: PartialBaseBuildConfig,\n context: ModuleContext,\n): Promise<BaseBuildConfig> => {\n const { mergeDefaultBaseConfig } = await import('../utils/config');\n const mergedConfig = await mergeDefaultBaseConfig(\n partialBuildConfig,\n context,\n );\n return mergedConfig;\n};\n\nexport const transformToAbsPath = async (\n baseConfig: BaseBuildConfig,\n options: { context: ModuleContext; buildCmdOptions: BuildCommandOptions },\n) => {\n const { slash } = await import('@modern-js/utils');\n const newConfig = baseConfig;\n const { normalizeInput } = await import('../utils/input');\n const { context } = options;\n\n newConfig.outDir = path.isAbsolute(newConfig.outDir)\n ? newConfig.outDir\n : path.join(context.appDirectory, newConfig.outDir);\n\n newConfig.sourceDir = slash(\n path.resolve(context.appDirectory, baseConfig.sourceDir),\n );\n newConfig.input = await normalizeInput(newConfig, {\n appDirectory: context.appDirectory,\n });\n\n // dts path\n if (newConfig.dts) {\n newConfig.dts.distPath = path.join(\n newConfig.outDir,\n newConfig.dts.distPath,\n );\n newConfig.dts.tsconfigPath = path.join(\n context.appDirectory,\n newConfig.dts.tsconfigPath,\n );\n }\n\n // Maybe need transform 'config.copy'\n\n return newConfig;\n};\n\nexport const checkConfig = async (config: ModuleUserConfig) => {\n const { buildConfig, buildPreset } = config;\n if (buildConfig && buildPreset) {\n const { logger } = await import('@modern-js/utils');\n logger.warn(\n `因为同时出现 'buildConfig' 和 'buildPreset' 配置,因此仅 'buildConfig' 配置生效`,\n );\n }\n};\n\nexport const normalizeBuildConfig = async (\n api: PluginAPI<ModuleTools>,\n context: ModuleContext,\n buildCmdOptions: BuildCommandOptions,\n): Promise<BaseBuildConfig[]> => {\n const { isLegacyUserConfig } = await import('../utils/config');\n let config = api.useConfigContext() as unknown as ModuleUserConfig;\n\n if (isLegacyUserConfig(config as { legacy?: boolean })) {\n const { createUserConfigFromLegacy } = await import(\n './transform-legacy-config'\n );\n config = await createUserConfigFromLegacy(config as ModuleLegacyUserConfig);\n }\n\n const { buildConfig, buildPreset } = config;\n\n await checkConfig(config);\n\n let baseConfigs: BaseBuildConfig[];\n\n // buildConfig High priority\n if (buildConfig) {\n baseConfigs = await transformBuildConfigToBaseConfigs(buildConfig, {\n buildCmdOptions,\n context,\n });\n } else {\n baseConfigs = await transformBuildPresetToBaseConfigs(\n {\n context,\n buildCmdOptions,\n },\n buildPreset,\n );\n }\n\n return baseConfigs;\n};\n"]}
1
+ {"version":3,"file":null,"mappings":"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","names":["config"],"sources":["../../src/config/normalize.ts"],"sourcesContent":["import path from 'path';\nimport type { PluginAPI } from '@modern-js/core';\nimport type {\n ModuleUserConfig,\n ModuleLegacyUserConfig,\n BaseBuildConfig,\n BuildPreset,\n PartialBuildConfig,\n PartialBaseBuildConfig,\n ModuleContext,\n BuildCommandOptions,\n ModuleTools,\n} from '../types';\n\nexport const transformBuildPresetToBaseConfigs = async (\n options: {\n context: ModuleContext;\n buildCmdOptions: BuildCommandOptions;\n },\n preset?: BuildPreset,\n): Promise<BaseBuildConfig[]> => {\n const { BuildInPreset, presetList } = await import(\n '../constants/build-presets'\n );\n const { addInputToPreset } = await import('../utils/input');\n\n if (typeof preset === 'function') {\n const partialBuildConfig = await preset({ preset: BuildInPreset });\n\n if (!partialBuildConfig) {\n throw new Error(\n 'The `buildPreset` function does not allow no return value',\n );\n }\n\n return transformBuildConfigToBaseConfigs(partialBuildConfig, options);\n }\n\n const inPresetList = (p: string): p is keyof typeof presetList =>\n p in presetList;\n\n if (preset && inPresetList(preset)) {\n return transformBuildConfigToBaseConfigs(\n await addInputToPreset(presetList[preset], options.context),\n options,\n );\n }\n\n // buildConfig and buildPreset is undefined\n return transformBuildConfigToBaseConfigs({}, options);\n};\n\nexport const transformBuildConfigToBaseConfigs = async (\n config: PartialBuildConfig,\n options: {\n buildCmdOptions: BuildCommandOptions;\n context: ModuleContext;\n },\n): Promise<BaseBuildConfig[]> => {\n const { validPartialBuildConfig } = await import('../utils/config');\n validPartialBuildConfig(config);\n const { buildCmdOptions } = options;\n const { ensureArray } = await import('@modern-js/utils');\n const { assignTsConfigPath } = await import('../utils/dts');\n const partialConfigs = ensureArray(config);\n const configs = await Promise.all(\n partialConfigs.map(async config => {\n let newConfig = await requiredBuildConfig(config, options.context);\n newConfig = await assignTsConfigPath(newConfig, buildCmdOptions);\n newConfig = await transformToAbsPath(newConfig, options);\n return newConfig;\n }),\n );\n return configs;\n};\n\nexport const requiredBuildConfig = async (\n partialBuildConfig: PartialBaseBuildConfig,\n context: ModuleContext,\n): Promise<BaseBuildConfig> => {\n const { mergeDefaultBaseConfig } = await import('../utils/config');\n const mergedConfig = await mergeDefaultBaseConfig(\n partialBuildConfig,\n context,\n );\n return mergedConfig;\n};\n\nexport const transformToAbsPath = async (\n baseConfig: BaseBuildConfig,\n options: { context: ModuleContext; buildCmdOptions: BuildCommandOptions },\n) => {\n const { slash } = await import('@modern-js/utils');\n const newConfig = baseConfig;\n const { normalizeInput } = await import('../utils/input');\n const { context } = options;\n\n newConfig.outDir = path.isAbsolute(newConfig.outDir)\n ? newConfig.outDir\n : path.join(context.appDirectory, newConfig.outDir);\n\n newConfig.sourceDir = slash(\n path.resolve(context.appDirectory, baseConfig.sourceDir),\n );\n newConfig.input = await normalizeInput(newConfig, {\n appDirectory: context.appDirectory,\n });\n\n // dts path\n if (newConfig.dts) {\n newConfig.dts.distPath = path.join(\n newConfig.outDir,\n newConfig.dts.distPath,\n );\n newConfig.dts.tsconfigPath = path.join(\n context.appDirectory,\n newConfig.dts.tsconfigPath,\n );\n }\n\n // Maybe need transform 'config.copy'\n\n return newConfig;\n};\n\nexport const checkConfig = async (config: ModuleUserConfig) => {\n const { buildConfig, buildPreset } = config;\n if (buildConfig && buildPreset) {\n const { logger } = await import('@modern-js/utils');\n logger.warn(\n `因为同时出现 'buildConfig' 和 'buildPreset' 配置,因此仅 'buildConfig' 配置生效`,\n );\n }\n};\n\nexport const normalizeBuildConfig = async (\n api: PluginAPI<ModuleTools>,\n context: ModuleContext,\n buildCmdOptions: BuildCommandOptions,\n): Promise<BaseBuildConfig[]> => {\n const { isLegacyUserConfig } = await import('../utils/config');\n let config = api.useConfigContext() as unknown as ModuleUserConfig;\n\n if (isLegacyUserConfig(config as { legacy?: boolean })) {\n const { createUserConfigFromLegacy } = await import(\n './transform-legacy-config'\n );\n config = await createUserConfigFromLegacy(config as ModuleLegacyUserConfig);\n }\n\n const { buildConfig, buildPreset } = config;\n\n await checkConfig(config);\n\n let baseConfigs: BaseBuildConfig[];\n\n // buildConfig High priority\n if (buildConfig) {\n baseConfigs = await transformBuildConfigToBaseConfigs(buildConfig, {\n buildCmdOptions,\n context,\n });\n } else {\n baseConfigs = await transformBuildPresetToBaseConfigs(\n {\n context,\n buildCmdOptions,\n },\n buildPreset,\n );\n }\n\n return baseConfigs;\n};\n"]}
@@ -70,7 +70,6 @@ export declare const presetList: {
70
70
  "npm-library-es2021": PartialBuildConfig;
71
71
  "npm-library-es2022": PartialBuildConfig;
72
72
  'npm-library': PartialBaseBuildConfig[];
73
- 'base-config': PartialBaseBuildConfig;
74
73
  };
75
74
  export declare const BuildInPreset: {
76
75
  BASE_CONFIG: PartialBaseBuildConfig;
@@ -203,9 +203,7 @@ const componentUmdPresetWithTarget = targets.reduce((ret, target) => {
203
203
  });
204
204
  return ret;
205
205
  }, {});
206
- const presetList = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({
207
- "base-config": basePresetConfig
208
- }, libraryPreset), libraryPresetWithTarget), libraryUmdPreset), libraryUmdPresetWithTarget), componentPreset), componentPresetWithTarget), componentUmdPreset), componentUmdPresetWithTarget);
206
+ const presetList = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, libraryPreset), libraryPresetWithTarget), libraryUmdPreset), libraryUmdPresetWithTarget), componentPreset), componentPresetWithTarget), componentUmdPreset), componentUmdPresetWithTarget);
209
207
  const BuildInPreset = {
210
208
  BASE_CONFIG: basePresetConfig,
211
209
  "base-config": basePresetConfig,
@@ -1 +1 @@
1
- {"version":3,"mappings":"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","names":[],"sources":["../../src/constants/build-presets.ts"],"sourcesContent":["import type {\n PartialBuildConfig,\n PartialBaseBuildConfig,\n Target,\n} from '../types';\n\nexport const targets: Target[] = [\n 'es5',\n 'es6',\n 'es2015',\n 'es2016',\n 'es2017',\n 'es2018',\n 'es2019',\n 'es2020',\n 'es2021',\n 'es2022',\n 'esnext',\n];\n\nexport const basePresetConfig: PartialBuildConfig = {\n format: 'esm',\n target: 'es6',\n buildType: 'bundle',\n outDir: './dist',\n dts: { distPath: './types' },\n};\n\nexport const npmLibraryPresetConfig: PartialBaseBuildConfig[] = [\n {\n format: 'cjs',\n target: 'es6',\n buildType: 'bundle',\n outDir: './dist/lib',\n dts: false,\n },\n {\n format: 'esm',\n target: 'es6',\n buildType: 'bundle',\n outDir: './dist/es',\n dts: false,\n },\n {\n buildType: 'bundle',\n dts: { only: true, distPath: './types' },\n },\n];\nexport const npmLibraryWithUmdPresetConfig: PartialBaseBuildConfig[] = [\n {\n format: 'cjs',\n target: 'es6',\n buildType: 'bundle',\n outDir: './dist/lib',\n dts: false,\n },\n {\n format: 'esm',\n target: 'es6',\n buildType: 'bundle',\n outDir: './dist/es',\n dts: false,\n },\n {\n format: 'umd',\n target: 'es6',\n buildType: 'bundle',\n outDir: './dist/umd',\n dts: false,\n },\n {\n buildType: 'bundle',\n dts: { only: true, distPath: './types' },\n },\n];\nexport const npmComponentPresetConfig: PartialBaseBuildConfig[] = [\n {\n format: 'cjs',\n target: 'es6',\n buildType: 'bundleless',\n outDir: './dist/lib',\n dts: false,\n },\n {\n format: 'esm',\n target: 'es6',\n buildType: 'bundleless',\n outDir: './dist/es',\n dts: false,\n },\n {\n buildType: 'bundleless',\n outDir: './dist/types',\n dts: { only: true },\n },\n];\nexport const npmComponentWithUmdPresetConfig: PartialBaseBuildConfig[] = [\n {\n format: 'cjs',\n target: 'es6',\n buildType: 'bundleless',\n outDir: './dist/lib',\n dts: false,\n },\n {\n format: 'esm',\n target: 'es6',\n buildType: 'bundleless',\n outDir: './dist/es',\n dts: false,\n },\n {\n format: 'umd',\n target: 'es6',\n buildType: 'bundle',\n outDir: './dist/umd',\n dts: false,\n },\n {\n buildType: 'bundleless',\n dts: { only: true, distPath: './types' },\n },\n];\n\nexport const libraryPreset = { 'npm-library': npmLibraryPresetConfig };\n\nexport const libraryPresetWithTarget = targets.reduce((ret, target) => {\n ret[`npm-library-${target}`] = libraryPreset['npm-library'].map(config => {\n return { ...config, target };\n });\n return ret;\n}, {} as Record<`npm-library-${Target}`, PartialBuildConfig>);\n\nexport const libraryUmdPreset = {\n 'npm-library-with-umd': npmLibraryWithUmdPresetConfig,\n};\nexport const libraryUmdPresetWithTarget = targets.reduce((ret, target) => {\n ret[`npm-library-with-umd-${target}`] = libraryUmdPreset[\n 'npm-library-with-umd'\n ].map(config => {\n return { ...config, target };\n });\n return ret;\n}, {} as Record<`npm-library-with-umd-${Target}`, PartialBuildConfig>);\n\nexport const componentPreset = {\n 'npm-component': npmComponentPresetConfig,\n};\nexport const componentPresetWithTarget = targets.reduce((ret, target) => {\n ret[`npm-component-${target}`] = componentPreset['npm-component'].map(\n config => {\n return { ...config, target };\n },\n );\n return ret;\n}, {} as Record<`npm-component-${Target}`, PartialBuildConfig>);\n\nexport const componentUmdPreset = {\n 'npm-component-with-umd': npmComponentWithUmdPresetConfig,\n};\nexport const componentUmdPresetWithTarget = targets.reduce((ret, target) => {\n ret[`npm-component-with-umd-${target}`] = componentUmdPreset[\n 'npm-component-with-umd'\n ].map(config => {\n return { ...config, target };\n });\n return ret;\n}, {} as Record<`npm-component-with-umd-${Target}`, PartialBuildConfig>);\n\nexport const presetList = {\n 'base-config': basePresetConfig,\n ...libraryPreset,\n ...libraryPresetWithTarget,\n ...libraryUmdPreset,\n ...libraryUmdPresetWithTarget,\n ...componentPreset,\n ...componentPresetWithTarget,\n ...componentUmdPreset,\n ...componentUmdPresetWithTarget,\n};\n\nexport const BuildInPreset = {\n BASE_CONFIG: basePresetConfig,\n 'base-config': basePresetConfig,\n NPM_LIBRARY: npmLibraryPresetConfig,\n 'npm-library': npmLibraryPresetConfig,\n NPM_LIBRARY_WITH_UMD: npmLibraryWithUmdPresetConfig,\n 'npm-library-with-umd': npmLibraryWithUmdPresetConfig,\n NPM_COMPONENT: npmComponentPresetConfig,\n 'npm-component': npmComponentPresetConfig,\n NPM_COMPONENT_WITH_UMD: npmComponentWithUmdPresetConfig,\n 'npm-component-with-umd': npmComponentWithUmdPresetConfig,\n};\n"]}
1
+ {"version":3,"mappings":"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","names":[],"sources":["../../src/constants/build-presets.ts"],"sourcesContent":["import type {\n PartialBuildConfig,\n PartialBaseBuildConfig,\n Target,\n} from '../types';\n\nexport const targets: Target[] = [\n 'es5',\n 'es6',\n 'es2015',\n 'es2016',\n 'es2017',\n 'es2018',\n 'es2019',\n 'es2020',\n 'es2021',\n 'es2022',\n 'esnext',\n];\n\nexport const basePresetConfig: PartialBuildConfig = {\n format: 'esm',\n target: 'es6',\n buildType: 'bundle',\n outDir: './dist',\n dts: { distPath: './types' },\n};\n\nexport const npmLibraryPresetConfig: PartialBaseBuildConfig[] = [\n {\n format: 'cjs',\n target: 'es6',\n buildType: 'bundle',\n outDir: './dist/lib',\n dts: false,\n },\n {\n format: 'esm',\n target: 'es6',\n buildType: 'bundle',\n outDir: './dist/es',\n dts: false,\n },\n {\n buildType: 'bundle',\n dts: { only: true, distPath: './types' },\n },\n];\nexport const npmLibraryWithUmdPresetConfig: PartialBaseBuildConfig[] = [\n {\n format: 'cjs',\n target: 'es6',\n buildType: 'bundle',\n outDir: './dist/lib',\n dts: false,\n },\n {\n format: 'esm',\n target: 'es6',\n buildType: 'bundle',\n outDir: './dist/es',\n dts: false,\n },\n {\n format: 'umd',\n target: 'es6',\n buildType: 'bundle',\n outDir: './dist/umd',\n dts: false,\n },\n {\n buildType: 'bundle',\n dts: { only: true, distPath: './types' },\n },\n];\nexport const npmComponentPresetConfig: PartialBaseBuildConfig[] = [\n {\n format: 'cjs',\n target: 'es6',\n buildType: 'bundleless',\n outDir: './dist/lib',\n dts: false,\n },\n {\n format: 'esm',\n target: 'es6',\n buildType: 'bundleless',\n outDir: './dist/es',\n dts: false,\n },\n {\n buildType: 'bundleless',\n outDir: './dist/types',\n dts: { only: true },\n },\n];\nexport const npmComponentWithUmdPresetConfig: PartialBaseBuildConfig[] = [\n {\n format: 'cjs',\n target: 'es6',\n buildType: 'bundleless',\n outDir: './dist/lib',\n dts: false,\n },\n {\n format: 'esm',\n target: 'es6',\n buildType: 'bundleless',\n outDir: './dist/es',\n dts: false,\n },\n {\n format: 'umd',\n target: 'es6',\n buildType: 'bundle',\n outDir: './dist/umd',\n dts: false,\n },\n {\n buildType: 'bundleless',\n dts: { only: true, distPath: './types' },\n },\n];\n\nexport const libraryPreset = { 'npm-library': npmLibraryPresetConfig };\n\nexport const libraryPresetWithTarget = targets.reduce((ret, target) => {\n ret[`npm-library-${target}`] = libraryPreset['npm-library'].map(config => {\n return { ...config, target };\n });\n return ret;\n}, {} as Record<`npm-library-${Target}`, PartialBuildConfig>);\n\nexport const libraryUmdPreset = {\n 'npm-library-with-umd': npmLibraryWithUmdPresetConfig,\n};\nexport const libraryUmdPresetWithTarget = targets.reduce((ret, target) => {\n ret[`npm-library-with-umd-${target}`] = libraryUmdPreset[\n 'npm-library-with-umd'\n ].map(config => {\n return { ...config, target };\n });\n return ret;\n}, {} as Record<`npm-library-with-umd-${Target}`, PartialBuildConfig>);\n\nexport const componentPreset = {\n 'npm-component': npmComponentPresetConfig,\n};\nexport const componentPresetWithTarget = targets.reduce((ret, target) => {\n ret[`npm-component-${target}`] = componentPreset['npm-component'].map(\n config => {\n return { ...config, target };\n },\n );\n return ret;\n}, {} as Record<`npm-component-${Target}`, PartialBuildConfig>);\n\nexport const componentUmdPreset = {\n 'npm-component-with-umd': npmComponentWithUmdPresetConfig,\n};\nexport const componentUmdPresetWithTarget = targets.reduce((ret, target) => {\n ret[`npm-component-with-umd-${target}`] = componentUmdPreset[\n 'npm-component-with-umd'\n ].map(config => {\n return { ...config, target };\n });\n return ret;\n}, {} as Record<`npm-component-with-umd-${Target}`, PartialBuildConfig>);\n\nexport const presetList = {\n ...libraryPreset,\n ...libraryPresetWithTarget,\n ...libraryUmdPreset,\n ...libraryUmdPresetWithTarget,\n ...componentPreset,\n ...componentPresetWithTarget,\n ...componentUmdPreset,\n ...componentUmdPresetWithTarget,\n};\n\nexport const BuildInPreset = {\n BASE_CONFIG: basePresetConfig,\n 'base-config': basePresetConfig,\n NPM_LIBRARY: npmLibraryPresetConfig,\n 'npm-library': npmLibraryPresetConfig,\n NPM_LIBRARY_WITH_UMD: npmLibraryWithUmdPresetConfig,\n 'npm-library-with-umd': npmLibraryWithUmdPresetConfig,\n NPM_COMPONENT: npmComponentPresetConfig,\n 'npm-component': npmComponentPresetConfig,\n NPM_COMPONENT_WITH_UMD: npmComponentWithUmdPresetConfig,\n 'npm-component-with-umd': npmComponentWithUmdPresetConfig,\n};\n"]}
@@ -30,7 +30,7 @@ const buildFailText = import_utils.chalk.red("Build Failed:");
30
30
  const defaultBuildConfig = Object.freeze({
31
31
  buildType: "bundle",
32
32
  format: "cjs",
33
- target: "esnext",
33
+ target: "es6",
34
34
  sourceMap: false,
35
35
  copy: {},
36
36
  outDir: "./dist",
@@ -1 +1 @@
1
- {"version":3,"file":null,"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsB;AAGf,MAAM,eAAe,mBAAM,KAAK,aAAa;AAC7C,MAAM,mBAAmB,mBAAM,MAAM,eAAe;AACpD,MAAM,gBAAgB,mBAAM,IAAI,eAAe;AAE/C,MAAM,qBAAqB,OAAO,OAAwB;AAAA,EAC/D,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,MAAM,CAAC;AAAA,EACP,QAAQ;AAAA,EACR,KAAK,OAAO,OAAO;AAAA,IACjB,MAAM;AAAA,IACN,UAAU;AAAA,IACV,cAAc;AAAA,EAChB,CAAC;AAAA,EACD,KAAK;AAAA,EACL,OAAO,CAAC,cAAc;AAAA,EACtB,UAAU;AAAA,EACV,WAAW;AAAA,EACX,WAAW,CAAC;AAAA,EACZ,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY,CAAC;AAAA,EACb,WAAW;AAAA,EACX,OAAO,CAAC;AAAA,EACR,UAAU;AAAA,EACV,eAAe,UAAQ;AAAA,EACvB,QAAQ,CAAC;AAAA,EACT,OAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,MAAM;AAAA,EACR;AAAA,EACA,OAAO;AAAA,IACL,MAAM,CAAC;AAAA,IACP,MAAM,CAAC;AAAA,IACP,SAAS,CAAC;AAAA,IACV,aAAa,CAAC;AAAA,IACd,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,SAAS,CAAC;AAAA,EACZ;AACF,CAAC;;;;;;;;","names":[],"sources":["../../src/constants/build.ts"],"sourcesContent":["import { chalk } from '@modern-js/utils';\nimport type { BaseBuildConfig } from '../types';\n\nexport const buildingText = chalk.blue('Building...');\nexport const buildSuccessText = chalk.green('Build succeed');\nexport const buildFailText = chalk.red('Build Failed:');\n\nexport const defaultBuildConfig = Object.freeze<BaseBuildConfig>({\n buildType: 'bundle',\n format: 'cjs',\n target: 'esnext',\n sourceMap: false,\n copy: {},\n outDir: './dist',\n dts: Object.freeze({\n only: false,\n distPath: './',\n tsconfigPath: './tsconfig.json',\n }),\n jsx: 'automatic',\n input: ['src/index.ts'],\n platform: 'node',\n splitting: false,\n externals: [],\n minify: false,\n autoExternal: true,\n umdGlobals: {},\n sourceDir: './src',\n alias: {},\n metafile: false,\n umdModuleName: name => name,\n define: {},\n asset: {\n path: 'assets',\n limit: 14336,\n publicPath: '',\n svgr: false,\n },\n style: {\n less: {},\n sass: {},\n postcss: {},\n tailwindCss: {},\n inject: false,\n autoModules: true,\n modules: {},\n },\n});\n"]}
1
+ {"version":3,"file":null,"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsB;AAGf,MAAM,eAAe,mBAAM,KAAK,aAAa;AAC7C,MAAM,mBAAmB,mBAAM,MAAM,eAAe;AACpD,MAAM,gBAAgB,mBAAM,IAAI,eAAe;AAE/C,MAAM,qBAAqB,OAAO,OAAwB;AAAA,EAC/D,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,MAAM,CAAC;AAAA,EACP,QAAQ;AAAA,EACR,KAAK,OAAO,OAAO;AAAA,IACjB,MAAM;AAAA,IACN,UAAU;AAAA,IACV,cAAc;AAAA,EAChB,CAAC;AAAA,EACD,KAAK;AAAA,EACL,OAAO,CAAC,cAAc;AAAA,EACtB,UAAU;AAAA,EACV,WAAW;AAAA,EACX,WAAW,CAAC;AAAA,EACZ,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY,CAAC;AAAA,EACb,WAAW;AAAA,EACX,OAAO,CAAC;AAAA,EACR,UAAU;AAAA,EACV,eAAe,UAAQ;AAAA,EACvB,QAAQ,CAAC;AAAA,EACT,OAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,MAAM;AAAA,EACR;AAAA,EACA,OAAO;AAAA,IACL,MAAM,CAAC;AAAA,IACP,MAAM,CAAC;AAAA,IACP,SAAS,CAAC;AAAA,IACV,aAAa,CAAC;AAAA,IACd,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,SAAS,CAAC;AAAA,EACZ;AACF,CAAC;;;;;;;;","names":[],"sources":["../../src/constants/build.ts"],"sourcesContent":["import { chalk } from '@modern-js/utils';\nimport type { BaseBuildConfig } from '../types';\n\nexport const buildingText = chalk.blue('Building...');\nexport const buildSuccessText = chalk.green('Build succeed');\nexport const buildFailText = chalk.red('Build Failed:');\n\nexport const defaultBuildConfig = Object.freeze<BaseBuildConfig>({\n buildType: 'bundle',\n format: 'cjs',\n target: 'es6',\n sourceMap: false,\n copy: {},\n outDir: './dist',\n dts: Object.freeze({\n only: false,\n distPath: './',\n tsconfigPath: './tsconfig.json',\n }),\n jsx: 'automatic',\n input: ['src/index.ts'],\n platform: 'node',\n splitting: false,\n externals: [],\n minify: false,\n autoExternal: true,\n umdGlobals: {},\n sourceDir: './src',\n alias: {},\n metafile: false,\n umdModuleName: name => name,\n define: {},\n asset: {\n path: 'assets',\n limit: 14336,\n publicPath: '',\n svgr: false,\n },\n style: {\n less: {},\n sass: {},\n postcss: {},\n tailwindCss: {},\n inject: false,\n autoModules: true,\n modules: {},\n },\n});\n"]}
package/dist/dev.d.ts CHANGED
@@ -2,7 +2,12 @@ import type { PluginAPI } from '@modern-js/core';
2
2
  import type { DevCommandOptions } from './types/command';
3
3
  import type { ModuleContext } from './types/context';
4
4
  import type { DevToolData, ModuleTools } from './types';
5
- export declare const runBuildBeforeDevTools: (api: PluginAPI<ModuleTools>, context: ModuleContext, cliOptions: DevCommandOptions, options: {
5
+ export declare const ensureFirstBuild: (api: PluginAPI<ModuleTools>, context: ModuleContext, cliOptions: DevCommandOptions, options: {
6
+ watch?: boolean;
7
+ disableRunBuild: boolean;
8
+ appDirectory: string;
9
+ }) => Promise<void>;
10
+ export declare const watchBuild: (api: PluginAPI<ModuleTools>, context: ModuleContext, cliOptions: DevCommandOptions, options: {
6
11
  disableRunBuild: boolean;
7
12
  appDirectory: string;
8
13
  }) => Promise<void>;
package/dist/dev.js CHANGED
@@ -1,9 +1,26 @@
1
1
  var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
8
  var __getProtoOf = Object.getPrototypeOf;
6
9
  var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7
24
  var __export = (target, all) => {
8
25
  for (var name in all)
9
26
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -44,18 +61,29 @@ var __async = (__this, __arguments, generator) => {
44
61
  var dev_exports = {};
45
62
  __export(dev_exports, {
46
63
  dev: () => dev,
47
- runBuildBeforeDevTools: () => runBuildBeforeDevTools,
48
- showMenu: () => showMenu
64
+ ensureFirstBuild: () => ensureFirstBuild,
65
+ showMenu: () => showMenu,
66
+ watchBuild: () => watchBuild
49
67
  });
50
68
  module.exports = __toCommonJS(dev_exports);
51
- const runBuildBeforeDevTools = (api, context, cliOptions, options) => __async(void 0, null, function* () {
69
+ const ensureFirstBuild = (api, context, cliOptions, options) => __async(void 0, null, function* () {
70
+ var _a;
52
71
  if (!options.disableRunBuild) {
53
72
  const { build } = yield Promise.resolve().then(() => __toESM(require("./build")));
54
- yield build(api, { watch: true, tsconfig: cliOptions.tsconfig }, context);
73
+ const defaultCmdOptions = {
74
+ tsconfig: cliOptions.tsconfig,
75
+ watch: (_a = options.watch) != null ? _a : false,
76
+ dts: true,
77
+ clear: true
78
+ };
79
+ yield build(api, defaultCmdOptions, context);
55
80
  }
56
81
  });
82
+ const watchBuild = (api, context, cliOptions, options) => __async(void 0, null, function* () {
83
+ yield ensureFirstBuild(api, context, cliOptions, __spreadProps(__spreadValues({}, options), { watch: true }));
84
+ });
57
85
  const showMenu = (metas, devCmdOptions, api, context) => __async(void 0, null, function* () {
58
- var _a;
86
+ var _a, _b;
59
87
  const { chalk, inquirer } = yield Promise.resolve().then(() => __toESM(require("@modern-js/utils")));
60
88
  const runner = api.useHookRunners();
61
89
  const menuTitle = chalk.rgb(255, 153, 0);
@@ -80,7 +108,7 @@ const showMenu = (metas, devCmdOptions, api, context) => __async(void 0, null, f
80
108
  }
81
109
  );
82
110
  if (currentDevTool) {
83
- yield runBuildBeforeDevTools(api, context, devCmdOptions, {
111
+ yield ensureFirstBuild(api, context, devCmdOptions, {
84
112
  disableRunBuild: (_a = currentDevTool.disableRunBuild) != null ? _a : false,
85
113
  appDirectory: context.appDirectory
86
114
  });
@@ -88,10 +116,14 @@ const showMenu = (metas, devCmdOptions, api, context) => __async(void 0, null, f
88
116
  yield currentDevTool.action(devCmdOptions, {
89
117
  isTsProject: context.isTsProject
90
118
  });
119
+ yield watchBuild(api, context, devCmdOptions, {
120
+ disableRunBuild: (_b = currentDevTool.disableRunBuild) != null ? _b : false,
121
+ appDirectory: context.appDirectory
122
+ });
91
123
  }
92
124
  });
93
125
  const dev = (options, metas, api, context) => __async(void 0, null, function* () {
94
- var _a, _b, _c;
126
+ var _a, _b, _c, _d;
95
127
  const { chalk } = yield Promise.resolve().then(() => __toESM(require("@modern-js/utils")));
96
128
  const { purple } = yield Promise.resolve().then(() => __toESM(require("./constants/colors")));
97
129
  if (metas.length === 0) {
@@ -106,12 +138,16 @@ const dev = (options, metas, api, context) => __async(void 0, null, function* ()
106
138
  )
107
139
  );
108
140
  const meta = metas[0];
109
- yield runBuildBeforeDevTools(api, context, options, {
141
+ yield ensureFirstBuild(api, context, options, {
110
142
  disableRunBuild: (_c = meta.disableRunBuild) != null ? _c : false,
111
143
  appDirectory: context.appDirectory
112
144
  });
113
145
  yield runner.beforeDevTask(meta);
114
146
  yield meta.action(options, { isTsProject: context.isTsProject });
147
+ yield watchBuild(api, context, options, {
148
+ disableRunBuild: (_d = meta.disableRunBuild) != null ? _d : false,
149
+ appDirectory: context.appDirectory
150
+ });
115
151
  } else if (metas.length > 1) {
116
152
  yield showMenu(metas, options, api, context);
117
153
  }
@@ -119,8 +155,9 @@ const dev = (options, metas, api, context) => __async(void 0, null, function* ()
119
155
  // Annotate the CommonJS export names for ESM import in node:
120
156
  0 && (module.exports = {
121
157
  dev,
122
- runBuildBeforeDevTools,
123
- showMenu
158
+ ensureFirstBuild,
159
+ showMenu,
160
+ watchBuild
124
161
  });
125
162
 
126
163
  //# sourceMappingURL=dev.js.map
package/dist/dev.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":null,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKO,MAAM,yBAAyB,CACpC,KACA,SACA,YACA,YAIG;AACH,MAAI,CAAC,QAAQ,iBAAiB;AAC5B,UAAM,EAAE,MAAM,IAAI,MAAM,6CAAO;AAC/B,UAAM,MAAM,KAAK,EAAE,OAAO,MAAM,UAAU,WAAW,SAAS,GAAG,OAAO;AAAA,EAC1E;AACF;AAEO,MAAM,WAAW,CACtB,OACA,eACA,KACA,YACG;AAzBL;AA0BE,QAAM,EAAE,OAAO,SAAS,IAAI,MAAM,6CAAO;AACzC,QAAM,SAAS,IAAI,eAAe;AAElC,QAAM,YAAY,MAAM,IAAI,KAAK,KAAK,CAAC;AACvC,QAAM,UAAU,MACb,IAAI,UAAQ,KAAK,QAAQ,EACzB,OAAO,cAAY,OAAO,aAAa,QAAQ;AAClD,QAAM,YAAY;AAAA,IAChB;AAAA,MACE,MAAM;AAAA,MACN,SAAS,UAAU,QAAQ;AAAA,MAC3B,MAAM;AAAA,MACN;AAAA,IACF;AAAA,EACF;AAEA,QAAM,eAAe,MAAM,OAAO,cAAc,SAAS;AACzD,QAAM,SAAoC,MAAM,SAAS;AAAA,IACvD,aAAa,WAAW,IAAI,eAAe;AAAA,EAC7C;AACA,QAAM,OAAO,aAAa,EAAE,QAAQ,UAAU,MAAM,CAAC;AAErD,QAAM,iBAAiB,MAAM;AAAA,IAC3B,UAAK;AAjDT;AAiDY,0BAAK,aAAL,oBAAe,WAAU,OAAO;AAAA;AAAA,EAC1C;AACA,MAAI,gBAAgB;AAClB,UAAM,uBAAuB,KAAK,SAAS,eAAe;AAAA,MACxD,kBAAiB,oBAAe,oBAAf,YAAkC;AAAA,MACnD,cAAc,QAAQ;AAAA,IACxB,CAAC;AAED,UAAM,OAAO,cAAc,cAAc;AACzC,UAAM,eAAe,OAAO,eAAe;AAAA,MACzC,aAAa,QAAQ;AAAA,IACvB,CAAC;AAAA,EACH;AACF;AAEO,MAAM,MAAM,CACjB,SACA,OACA,KACA,YACG;AArEL;AAsEE,QAAM,EAAE,MAAM,IAAI,MAAM,6CAAO;AAC/B,QAAM,EAAE,OAAO,IAAI,MAAM,6CAAO;AAChC,MAAI,MAAM,WAAW,GAAG;AACtB,YAAQ,KAAK,8BAA8B;AAE3C,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,SAAS,IAAI,eAAe;AAClC,MAAI,MAAM,WAAW,GAAG;AACtB,YAAQ;AAAA,MACN,MAAM,IAAI,GAAG,MAAM;AAAA,QACjB,8EACE,iBAAM,GAAG,aAAT,mBAAmB,SAAnB,YAA2B,MAAM,GAAG;AAAA,MAExC;AAAA,IACF;AACA,UAAM,OAAO,MAAM;AAEnB,UAAM,uBAAuB,KAAK,SAAS,SAAS;AAAA,MAClD,kBAAiB,UAAK,oBAAL,YAAwB;AAAA,MACzC,cAAc,QAAQ;AAAA,IACxB,CAAC;AAED,UAAM,OAAO,cAAc,IAAI;AAC/B,UAAM,KAAK,OAAO,SAAS,EAAE,aAAa,QAAQ,YAAY,CAAC;AAAA,EACjE,WAAW,MAAM,SAAS,GAAG;AAC3B,UAAM,SAAS,OAAO,SAAS,KAAK,OAAO;AAAA,EAC7C;AACF;;;;;;;","names":[],"sources":["../src/dev.ts"],"sourcesContent":["import type { PluginAPI } from '@modern-js/core';\nimport type { DevCommandOptions } from './types/command';\nimport type { ModuleContext } from './types/context';\nimport type { DevToolData, ModuleTools } from './types';\n\nexport const runBuildBeforeDevTools = async (\n api: PluginAPI<ModuleTools>,\n context: ModuleContext,\n cliOptions: DevCommandOptions,\n options: {\n disableRunBuild: boolean;\n appDirectory: string;\n },\n) => {\n if (!options.disableRunBuild) {\n const { build } = await import('./build');\n await build(api, { watch: true, tsconfig: cliOptions.tsconfig }, context);\n }\n};\n\nexport const showMenu = async (\n metas: DevToolData[],\n devCmdOptions: DevCommandOptions,\n api: PluginAPI<ModuleTools>,\n context: ModuleContext,\n) => {\n const { chalk, inquirer } = await import('@modern-js/utils');\n const runner = api.useHookRunners();\n\n const menuTitle = chalk.rgb(255, 153, 0);\n const choices = metas\n .map(meta => meta.menuItem)\n .filter(menuItem => typeof menuItem === 'object');\n const questions = [\n {\n name: 'choiceDevTool',\n message: menuTitle('选择调试工具'),\n type: 'list',\n choices,\n },\n ];\n\n const newQuestions = await runner.beforeDevMenu(questions);\n const result: { choiceDevTool: string } = await inquirer.prompt(\n newQuestions.length !== 0 ? newQuestions : questions,\n );\n await runner.afterDevMenu({ result, devTools: metas });\n\n const currentDevTool = metas.find(\n meta => meta.menuItem?.value === result.choiceDevTool,\n );\n if (currentDevTool) {\n await runBuildBeforeDevTools(api, context, devCmdOptions, {\n disableRunBuild: currentDevTool.disableRunBuild ?? false,\n appDirectory: context.appDirectory,\n });\n\n await runner.beforeDevTask(currentDevTool);\n await currentDevTool.action(devCmdOptions, {\n isTsProject: context.isTsProject,\n });\n }\n};\n\nexport const dev = async (\n options: DevCommandOptions,\n metas: DevToolData[],\n api: PluginAPI<ModuleTools>,\n context: ModuleContext,\n) => {\n const { chalk } = await import('@modern-js/utils');\n const { purple } = await import('./constants/colors');\n if (metas.length === 0) {\n console.info('No dev tools found available');\n // eslint-disable-next-line no-process-exit\n process.exit(0);\n }\n\n const runner = api.useHookRunners();\n if (metas.length === 1) {\n console.info(\n chalk.rgb(...purple)(\n `Only one dev tooling is currently detected as available, run it directly [${\n metas[0].menuItem?.name ?? metas[0].name\n }]`,\n ),\n );\n const meta = metas[0];\n\n await runBuildBeforeDevTools(api, context, options, {\n disableRunBuild: meta.disableRunBuild ?? false,\n appDirectory: context.appDirectory,\n });\n\n await runner.beforeDevTask(meta);\n await meta.action(options, { isTsProject: context.isTsProject });\n } else if (metas.length > 1) {\n await showMenu(metas, options, api, context);\n }\n};\n"]}
1
+ {"version":3,"file":null,"mappings":"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","names":[],"sources":["../src/dev.ts"],"sourcesContent":["import type { PluginAPI } from '@modern-js/core';\nimport type { DevCommandOptions, BuildCommandOptions } from './types/command';\nimport type { ModuleContext } from './types/context';\nimport type { DevToolData, ModuleTools } from './types';\n\nexport const ensureFirstBuild = async (\n api: PluginAPI<ModuleTools>,\n context: ModuleContext,\n cliOptions: DevCommandOptions,\n options: {\n watch?: boolean;\n disableRunBuild: boolean;\n appDirectory: string;\n },\n) => {\n if (!options.disableRunBuild) {\n const { build } = await import('./build');\n const defaultCmdOptions: BuildCommandOptions = {\n tsconfig: cliOptions.tsconfig,\n watch: options.watch ?? false,\n dts: true,\n clear: true,\n };\n await build(api, defaultCmdOptions, context);\n }\n};\n\nexport const watchBuild = async (\n api: PluginAPI<ModuleTools>,\n context: ModuleContext,\n cliOptions: DevCommandOptions,\n options: {\n disableRunBuild: boolean;\n appDirectory: string;\n },\n) => {\n await ensureFirstBuild(api, context, cliOptions, { ...options, watch: true });\n};\n\nexport const showMenu = async (\n metas: DevToolData[],\n devCmdOptions: DevCommandOptions,\n api: PluginAPI<ModuleTools>,\n context: ModuleContext,\n) => {\n const { chalk, inquirer } = await import('@modern-js/utils');\n const runner = api.useHookRunners();\n\n const menuTitle = chalk.rgb(255, 153, 0);\n const choices = metas\n .map(meta => meta.menuItem)\n .filter(menuItem => typeof menuItem === 'object');\n const questions = [\n {\n name: 'choiceDevTool',\n message: menuTitle('选择调试工具'),\n type: 'list',\n choices,\n },\n ];\n\n const newQuestions = await runner.beforeDevMenu(questions);\n const result: { choiceDevTool: string } = await inquirer.prompt(\n newQuestions.length !== 0 ? newQuestions : questions,\n );\n await runner.afterDevMenu({ result, devTools: metas });\n\n const currentDevTool = metas.find(\n meta => meta.menuItem?.value === result.choiceDevTool,\n );\n if (currentDevTool) {\n await ensureFirstBuild(api, context, devCmdOptions, {\n disableRunBuild: currentDevTool.disableRunBuild ?? false,\n appDirectory: context.appDirectory,\n });\n\n await runner.beforeDevTask(currentDevTool);\n await currentDevTool.action(devCmdOptions, {\n isTsProject: context.isTsProject,\n });\n\n await watchBuild(api, context, devCmdOptions, {\n disableRunBuild: currentDevTool.disableRunBuild ?? false,\n appDirectory: context.appDirectory,\n });\n }\n};\n\nexport const dev = async (\n options: DevCommandOptions,\n metas: DevToolData[],\n api: PluginAPI<ModuleTools>,\n context: ModuleContext,\n) => {\n const { chalk } = await import('@modern-js/utils');\n const { purple } = await import('./constants/colors');\n if (metas.length === 0) {\n console.info('No dev tools found available');\n // eslint-disable-next-line no-process-exit\n process.exit(0);\n }\n\n const runner = api.useHookRunners();\n if (metas.length === 1) {\n console.info(\n chalk.rgb(...purple)(\n `Only one dev tooling is currently detected as available, run it directly [${\n metas[0].menuItem?.name ?? metas[0].name\n }]`,\n ),\n );\n const meta = metas[0];\n\n await ensureFirstBuild(api, context, options, {\n disableRunBuild: meta.disableRunBuild ?? false,\n appDirectory: context.appDirectory,\n });\n\n await runner.beforeDevTask(meta);\n await meta.action(options, { isTsProject: context.isTsProject });\n\n await watchBuild(api, context, options, {\n disableRunBuild: meta.disableRunBuild ?? false,\n appDirectory: context.appDirectory,\n });\n } else if (metas.length > 1) {\n await showMenu(metas, options, api, context);\n }\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import type { RegisterBuildPlatformResult } from '@modern-js/core';
2
2
  import { BuildCommandOptions } from '../types';
3
3
  import type { BuildConfig, BaseBuildConfig } from '../types/config';
4
- import type { BuildTaskResult, BuildResult, BuildPlatformResult } from '../types/hooks';
4
+ import type { BuildTaskResult, BuildResult, BuildPlatformResult, WatchDtsHookContext, WatchJsHookContext } from '../types/hooks';
5
5
  export declare const buildHooks: {
6
6
  beforeBuild: import("@modern-js/plugin").ParallelWorkflow<{
7
7
  config: BuildConfig;
@@ -16,4 +16,8 @@ export declare const buildHooks: {
16
16
  platform: string;
17
17
  }, void>;
18
18
  afterBuildPlatform: import("@modern-js/plugin").ParallelWorkflow<BuildPlatformResult, void>;
19
+ };
20
+ export declare const buildWatchHooks: {
21
+ buildWatchJs: import("@modern-js/plugin").ParallelWorkflow<WatchJsHookContext, void>;
22
+ buildWatchDts: import("@modern-js/plugin").ParallelWorkflow<WatchDtsHookContext, void>;
19
23
  };
@@ -17,7 +17,8 @@ var __copyProps = (to, from, except, desc) => {
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
18
  var build_exports = {};
19
19
  __export(build_exports, {
20
- buildHooks: () => buildHooks
20
+ buildHooks: () => buildHooks,
21
+ buildWatchHooks: () => buildWatchHooks
21
22
  });
22
23
  module.exports = __toCommonJS(build_exports);
23
24
  var import_plugin = require("@modern-js/plugin");
@@ -31,9 +32,14 @@ const buildHooks = {
31
32
  buildPlatform: (0, import_plugin.createParallelWorkflow)(),
32
33
  afterBuildPlatform: (0, import_plugin.createParallelWorkflow)()
33
34
  };
35
+ const buildWatchHooks = {
36
+ buildWatchJs: (0, import_plugin.createParallelWorkflow)(),
37
+ buildWatchDts: (0, import_plugin.createParallelWorkflow)()
38
+ };
34
39
  // Annotate the CommonJS export names for ESM import in node:
35
40
  0 && (module.exports = {
36
- buildHooks
41
+ buildHooks,
42
+ buildWatchHooks
37
43
  });
38
44
 
39
45
  //# sourceMappingURL=build.js.map
@@ -1 +1 @@
1
- {"version":3,"file":null,"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAGO;AAUA,MAAM,aAAa;AAAA,EACxB,iBAAa,sCAGX;AAAA,EACF,qBAAiB,oCAAsC;AAAA,EACvD,oBAAgB,sCAA8C;AAAA,EAC9D,gBAAY,sCAA0C;AAAA,EACtD,2BAAuB,sCAGrB;AAAA,EACF,yBAAqB,sCAGnB;AAAA,EACF,mBAAe,sCAAmD;AAAA,EAClE,wBAAoB,sCAAkD;AACxE;;;;;","names":[],"sources":["../../src/hooks/build.ts"],"sourcesContent":["import {\n createParallelWorkflow,\n createAsyncWaterfall,\n} from '@modern-js/plugin';\nimport type { RegisterBuildPlatformResult } from '@modern-js/core';\nimport { BuildCommandOptions } from '../types';\nimport type { BuildConfig, BaseBuildConfig } from '../types/config';\nimport type {\n BuildTaskResult,\n BuildResult,\n BuildPlatformResult,\n} from '../types/hooks';\n\nexport const buildHooks = {\n beforeBuild: createParallelWorkflow<\n { config: BuildConfig; cliOptions: BuildCommandOptions },\n void\n >(),\n beforeBuildTask: createAsyncWaterfall<BaseBuildConfig>(),\n afterBuildTask: createParallelWorkflow<BuildTaskResult, void>(),\n afterBuild: createParallelWorkflow<BuildResult, void>(),\n registerBuildPlatform: createParallelWorkflow<\n void,\n RegisterBuildPlatformResult\n >(),\n beforeBuildPlatform: createParallelWorkflow<\n RegisterBuildPlatformResult[],\n void\n >(),\n buildPlatform: createParallelWorkflow<{ platform: string }, void>(),\n afterBuildPlatform: createParallelWorkflow<BuildPlatformResult, void>(),\n};\n"]}
1
+ {"version":3,"file":null,"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAGO;AAYA,MAAM,aAAa;AAAA,EACxB,iBAAa,sCAGX;AAAA,EACF,qBAAiB,oCAAsC;AAAA,EACvD,oBAAgB,sCAA8C;AAAA,EAC9D,gBAAY,sCAA0C;AAAA,EACtD,2BAAuB,sCAGrB;AAAA,EACF,yBAAqB,sCAGnB;AAAA,EACF,mBAAe,sCAAmD;AAAA,EAClE,wBAAoB,sCAAkD;AACxE;AAEO,MAAM,kBAAkB;AAAA,EAC7B,kBAAc,sCAAiD;AAAA,EAC/D,mBAAe,sCAAkD;AACnE;;;;;;","names":[],"sources":["../../src/hooks/build.ts"],"sourcesContent":["import {\n createParallelWorkflow,\n createAsyncWaterfall,\n} from '@modern-js/plugin';\nimport type { RegisterBuildPlatformResult } from '@modern-js/core';\nimport { BuildCommandOptions } from '../types';\nimport type { BuildConfig, BaseBuildConfig } from '../types/config';\nimport type {\n BuildTaskResult,\n BuildResult,\n BuildPlatformResult,\n WatchDtsHookContext,\n WatchJsHookContext,\n} from '../types/hooks';\n\nexport const buildHooks = {\n beforeBuild: createParallelWorkflow<\n { config: BuildConfig; cliOptions: BuildCommandOptions },\n void\n >(),\n beforeBuildTask: createAsyncWaterfall<BaseBuildConfig>(),\n afterBuildTask: createParallelWorkflow<BuildTaskResult, void>(),\n afterBuild: createParallelWorkflow<BuildResult, void>(),\n registerBuildPlatform: createParallelWorkflow<\n void,\n RegisterBuildPlatformResult\n >(),\n beforeBuildPlatform: createParallelWorkflow<\n RegisterBuildPlatformResult[],\n void\n >(),\n buildPlatform: createParallelWorkflow<{ platform: string }, void>(),\n afterBuildPlatform: createParallelWorkflow<BuildPlatformResult, void>(),\n};\n\nexport const buildWatchHooks = {\n buildWatchJs: createParallelWorkflow<WatchJsHookContext, void>(),\n buildWatchDts: createParallelWorkflow<WatchDtsHookContext, void>(),\n};\n"]}
@@ -1,4 +1,6 @@
1
1
  export declare const registerHook: {
2
+ buildWatchJs: import("@modern-js/plugin").ParallelWorkflow<import("..").WatchJsHookContext, void>;
3
+ buildWatchDts: import("@modern-js/plugin").ParallelWorkflow<import("..").WatchDtsHookContext, void>;
2
4
  addRuntimeExports: import("@modern-js/plugin").AsyncWaterfall<void>;
3
5
  modifyLibuild: import("@modern-js/plugin").AsyncPipeline<import("@modern-js/libuild").CLIConfig, import("@modern-js/libuild").CLIConfig>;
4
6
  registerDev: import("@modern-js/plugin").ParallelWorkflow<void, import("..").DevToolData>;
@@ -37,7 +37,7 @@ module.exports = __toCommonJS(hooks_exports);
37
37
  var import_build = require("./build");
38
38
  var import_dev = require("./dev");
39
39
  var import_misc = require("./misc");
40
- const registerHook = __spreadValues(__spreadValues(__spreadValues({}, import_build.buildHooks), import_dev.devHooks), import_misc.miscHooks);
40
+ const registerHook = __spreadValues(__spreadValues(__spreadValues(__spreadValues({}, import_build.buildHooks), import_dev.devHooks), import_misc.miscHooks), import_build.buildWatchHooks);
41
41
  // Annotate the CommonJS export names for ESM import in node:
42
42
  0 && (module.exports = {
43
43
  registerHook
@@ -1 +1 @@
1
- {"version":3,"file":null,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA2B;AAC3B,iBAAyB;AACzB,kBAA0B;AAEnB,MAAM,eAAe,iDACvB,0BACA,sBACA;;;;;","names":[],"sources":["../../src/hooks/index.ts"],"sourcesContent":["import { buildHooks } from './build';\nimport { devHooks } from './dev';\nimport { miscHooks } from './misc';\n\nexport const registerHook = {\n ...buildHooks,\n ...devHooks,\n ...miscHooks,\n};\n"]}
1
+ {"version":3,"file":null,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA4C;AAC5C,iBAAyB;AACzB,kBAA0B;AAEnB,MAAM,eAAe,gEACvB,0BACA,sBACA,wBACA;;;;;","names":[],"sources":["../../src/hooks/index.ts"],"sourcesContent":["import { buildHooks, buildWatchHooks } from './build';\nimport { devHooks } from './dev';\nimport { miscHooks } from './misc';\n\nexport const registerHook = {\n ...buildHooks,\n ...devHooks,\n ...miscHooks,\n ...buildWatchHooks,\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  import { DevToolData as BaseDevToolData } from '@modern-js/core';
2
2
  import { registerHook } from '../hooks';
3
- import type { BaseBuildConfig, BuildConfig } from './config';
3
+ import type { BaseBuildConfig, BuildConfig, BuildType } from './config';
4
4
  import type { DevCommandOptions, BuildCommandOptions } from './command';
5
5
  export interface BuildTaskResult {
6
6
  status: 'success' | 'fail';
@@ -22,4 +22,10 @@ export type DevToolData = BaseDevToolData<DevCommandOptions>;
22
22
  export type PromptResult = {
23
23
  choiceDevTool: string;
24
24
  } & Record<string, any>;
25
- export type ModuleToolsHooks = typeof registerHook;
25
+ export type ModuleToolsHooks = typeof registerHook;
26
+ export interface WatchJsHookContext {
27
+ buildConfig: BaseBuildConfig;
28
+ }
29
+ export interface WatchDtsHookContext {
30
+ buildType: BuildType;
31
+ }
@@ -1 +1 @@
1
- {"version":3,"mappings":";;;;;;;;;;;;;AAAA;AAAA;","names":[],"sources":["../../src/types/hooks.ts"],"sourcesContent":["import { DevToolData as BaseDevToolData } from '@modern-js/core';\nimport { registerHook } from '../hooks';\nimport type { BaseBuildConfig, BuildConfig } from './config';\nimport type { DevCommandOptions, BuildCommandOptions } from './command';\n\nexport interface BuildTaskResult {\n status: 'success' | 'fail';\n message?: string;\n config: BaseBuildConfig;\n}\n\nexport interface BuildResult {\n status: 'success' | 'fail';\n message?: string;\n config: BuildConfig;\n commandOptions: BuildCommandOptions;\n totalDuration: number;\n}\nexport interface BuildPlatformResult {\n status: 'success' | 'fail';\n message: string | Error | null;\n}\n\nexport type DevToolData = BaseDevToolData<DevCommandOptions>;\n\nexport type PromptResult = { choiceDevTool: string } & Record<string, any>;\n\nexport type ModuleToolsHooks = typeof registerHook;\n"]}
1
+ {"version":3,"mappings":";;;;;;;;;;;;;AAAA;AAAA;","names":[],"sources":["../../src/types/hooks.ts"],"sourcesContent":["import { DevToolData as BaseDevToolData } from '@modern-js/core';\nimport { registerHook } from '../hooks';\nimport type { BaseBuildConfig, BuildConfig, BuildType } from './config';\nimport type { DevCommandOptions, BuildCommandOptions } from './command';\n\nexport interface BuildTaskResult {\n status: 'success' | 'fail';\n message?: string;\n config: BaseBuildConfig;\n}\n\nexport interface BuildResult {\n status: 'success' | 'fail';\n message?: string;\n config: BuildConfig;\n commandOptions: BuildCommandOptions;\n totalDuration: number;\n}\nexport interface BuildPlatformResult {\n status: 'success' | 'fail';\n message: string | Error | null;\n}\n\nexport type DevToolData = BaseDevToolData<DevCommandOptions>;\n\nexport type PromptResult = { choiceDevTool: string } & Record<string, any>;\n\nexport type ModuleToolsHooks = typeof registerHook;\n\nexport interface WatchJsHookContext {\n buildConfig: BaseBuildConfig;\n}\n\nexport interface WatchDtsHookContext {\n buildType: BuildType;\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import type { ITsconfig, BundlelessGeneratorDtsConfig, BuildCommandOptions, BaseBuildConfig } from '../types';
2
- export declare const generatorTsConfig: (projectTsconfig: ITsconfig, config: BundlelessGeneratorDtsConfig) => Promise<{
2
+ export declare const generatorTsConfig: (config: BundlelessGeneratorDtsConfig) => Promise<{
3
3
  tempTsconfigPath: string;
4
4
  tempDistAbsRootPath: string;
5
5
  tempDistAbsSrcPath: string;
package/dist/utils/dts.js CHANGED
@@ -67,56 +67,38 @@ __export(dts_exports, {
67
67
  });
68
68
  module.exports = __toCommonJS(dts_exports);
69
69
  var import_path = __toESM(require("path"));
70
- const generatorTsConfig = (projectTsconfig, config) => __async(void 0, null, function* () {
71
- var _a, _b, _c;
72
- const { fs, lodash, nanoid } = yield Promise.resolve().then(() => __toESM(require("@modern-js/utils")));
70
+ const generatorTsConfig = (config) => __async(void 0, null, function* () {
71
+ const { fs, nanoid } = yield Promise.resolve().then(() => __toESM(require("@modern-js/utils")));
73
72
  const { dtsTempDirectory } = yield Promise.resolve().then(() => __toESM(require("../constants/dts")));
74
73
  const { appDirectory, sourceDir: absSourceDir, tsconfigPath } = config;
75
74
  const tempDistAbsRootPath = import_path.default.join(
76
75
  appDirectory,
77
76
  `${dtsTempDirectory}/${nanoid()}`
78
77
  );
79
- const tempDistAbsSrcPath = import_path.default.join(
78
+ const tempDistAbsOurDir = import_path.default.join(
80
79
  tempDistAbsRootPath,
81
80
  import_path.default.relative(appDirectory, absSourceDir)
82
81
  );
83
- const rootDir = import_path.default.relative(tempDistAbsRootPath, appDirectory);
84
- const baseUrl = ((_a = projectTsconfig.compilerOptions) == null ? void 0 : _a.baseUrl) ? import_path.default.join(appDirectory, (_b = projectTsconfig.compilerOptions) == null ? void 0 : _b.baseUrl) : appDirectory;
85
- const include = [import_path.default.relative(tempDistAbsRootPath, absSourceDir)];
82
+ const tempTsconfigPath = import_path.default.join(tempDistAbsRootPath, `tsconfig.json`);
83
+ fs.ensureFileSync(tempTsconfigPath);
84
+ const extendsPath = import_path.default.join(
85
+ import_path.default.relative(import_path.default.dirname(tempTsconfigPath), import_path.default.dirname(tsconfigPath)),
86
+ import_path.default.basename(tempTsconfigPath)
87
+ );
86
88
  const resetConfig = {
87
- compilerOptions: __spreadProps(__spreadValues({}, projectTsconfig == null ? void 0 : projectTsconfig.compilerOptions), {
88
- rootDir,
89
- baseUrl,
89
+ extends: extendsPath,
90
+ compilerOptions: {
90
91
  declaration: true,
91
92
  emitDeclarationOnly: true,
92
- outDir: tempDistAbsRootPath
93
- }),
94
- include,
95
- exclude: (_c = projectTsconfig.exclude) != null ? _c : []
96
- };
97
- if (projectTsconfig.extends) {
98
- resetConfig.extends = projectTsconfig.extends.startsWith(".") ? import_path.default.join(
99
- import_path.default.relative(`${tempDistAbsRootPath}`, import_path.default.dirname(tsconfigPath)),
100
- projectTsconfig.extends
101
- ) : projectTsconfig.extends;
102
- }
103
- const recommendOption = {
104
- compilerOptions: {
105
- isolatedModules: true
93
+ outDir: tempDistAbsOurDir
106
94
  }
107
95
  };
108
- const tempTsconfigPath = import_path.default.join(tempDistAbsRootPath, `tsconfig.json`);
109
- fs.ensureFileSync(tempTsconfigPath);
110
- const deepMerge = lodash.merge;
111
- fs.writeJSONSync(
96
+ fs.writeJSONSync(tempTsconfigPath, resetConfig);
97
+ return {
112
98
  tempTsconfigPath,
113
- deepMerge(
114
- recommendOption,
115
- projectTsconfig,
116
- resetConfig
117
- )
118
- );
119
- return { tempTsconfigPath, tempDistAbsRootPath, tempDistAbsSrcPath };
99
+ tempDistAbsRootPath,
100
+ tempDistAbsSrcPath: tempDistAbsOurDir
101
+ };
120
102
  });
121
103
  const getTscBinPath = (appDirectory) => __async(void 0, null, function* () {
122
104
  const { fs } = yield Promise.resolve().then(() => __toESM(require("@modern-js/utils")));
@@ -1 +1 @@
1
- {"version":3,"file":null,"mappings":"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","names":[],"sources":["../../src/utils/dts.ts"],"sourcesContent":["import path from 'path';\n// import type { NodePath } from '../../compiled/@babel/traverse';\n// import type * as tt from '../../compiled/@babel/types';\n// import t from '../../compiled/@babel/types';\nimport type {\n ITsconfig,\n BundlelessGeneratorDtsConfig,\n BuildCommandOptions,\n BaseBuildConfig,\n // AliasOption,\n} from '../types';\n\nexport const generatorTsConfig = async (\n projectTsconfig: ITsconfig,\n config: BundlelessGeneratorDtsConfig,\n) => {\n const { fs, lodash, nanoid } = await import('@modern-js/utils');\n const { dtsTempDirectory } = await import('../constants/dts');\n\n const { appDirectory, sourceDir: absSourceDir, tsconfigPath } = config;\n const tempDistAbsRootPath = path.join(\n appDirectory,\n `${dtsTempDirectory}/${nanoid()}`,\n );\n const tempDistAbsSrcPath = path.join(\n tempDistAbsRootPath,\n path.relative(appDirectory, absSourceDir),\n );\n\n const rootDir = path.relative(tempDistAbsRootPath, appDirectory);\n const baseUrl = projectTsconfig.compilerOptions?.baseUrl\n ? path.join(appDirectory, projectTsconfig.compilerOptions?.baseUrl)\n : appDirectory;\n // if include = ['src'], final include should be ['../src']\n const include = [path.relative(tempDistAbsRootPath, absSourceDir)];\n\n const resetConfig: ITsconfig = {\n compilerOptions: {\n ...projectTsconfig?.compilerOptions,\n rootDir,\n baseUrl,\n // Ensure that .d.ts files are created by tsc, but not .js files\n declaration: true,\n emitDeclarationOnly: true,\n outDir: tempDistAbsRootPath,\n },\n include,\n exclude: projectTsconfig.exclude ?? [],\n };\n\n // extends: '../tsconfig.json'\n if (projectTsconfig.extends) {\n resetConfig.extends = projectTsconfig.extends.startsWith('.')\n ? path.join(\n path.relative(`${tempDistAbsRootPath}`, path.dirname(tsconfigPath)),\n projectTsconfig.extends,\n )\n : projectTsconfig.extends;\n }\n\n const recommendOption = {\n // Ensure that Babel can safely transpile files in the TypeScript project\n compilerOptions: {\n isolatedModules: true,\n },\n };\n\n const tempTsconfigPath = path.join(tempDistAbsRootPath, `tsconfig.json`);\n fs.ensureFileSync(tempTsconfigPath);\n\n const deepMerge = lodash.merge;\n fs.writeJSONSync(\n tempTsconfigPath,\n deepMerge(\n recommendOption,\n projectTsconfig,\n // 此处是必须要覆盖用户默认配置\n resetConfig,\n ),\n );\n\n return { tempTsconfigPath, tempDistAbsRootPath, tempDistAbsSrcPath };\n};\n\nexport const getTscBinPath = async (appDirectory: string) => {\n const { fs } = await import('@modern-js/utils');\n const { default: findUp, exists: pathExists } = await import(\n '../../compiled/find-up'\n );\n const tscBinFile = await findUp(\n async (directory: string) => {\n const targetFilePath = path.join(directory, './node_modules/.bin/tsc');\n const hasTscBinFile = await pathExists(targetFilePath);\n if (hasTscBinFile) {\n return targetFilePath;\n }\n return undefined;\n },\n { cwd: appDirectory },\n );\n\n if (!tscBinFile || !fs.existsSync(tscBinFile)) {\n throw new Error(\n 'Failed to excute the `tsc` command, please check if `typescript` is installed correctly in the current directory.',\n );\n }\n\n return tscBinFile;\n};\n\nexport const resolveAlias = async (\n config: BundlelessGeneratorDtsConfig,\n options: {\n userTsconfig: ITsconfig;\n tempTsconfigPath: string;\n tempDistAbsRootPath: string;\n tempDistAbsSrcPath: string;\n },\n watchFilenames: string[] = [],\n) => {\n const { userTsconfig, tempDistAbsSrcPath, tempDistAbsRootPath } = options;\n const { globby, fs } = await import('@modern-js/utils');\n const { transformDtsAlias } = await import('./tspaths-transform');\n const { distAbsPath } = config;\n const dtsDistPath = `${tempDistAbsSrcPath}/**/*.d.ts`;\n const dtsFilenames =\n watchFilenames.length > 0\n ? watchFilenames\n : globby.sync(dtsDistPath, { absolute: true });\n const result = transformDtsAlias({\n filenames: dtsFilenames,\n baseUrl: tempDistAbsRootPath,\n paths: userTsconfig.compilerOptions?.paths ?? {},\n });\n for (const r of result) {\n fs.writeFileSync(r.path, r.content);\n }\n\n await fs.copy(tempDistAbsSrcPath, distAbsPath);\n};\n\n// export const matchesPattern = (calleePath: NodePath, pattern: string) => {\n// const { node } = calleePath;\n\n// if (t.isMemberExpression(node)) {\n// return calleePath.matchesPattern(pattern);\n// }\n\n// if (!t.isIdentifier(node) || pattern.includes('.')) {\n// return false;\n// }\n\n// const name = pattern.split('.')[0];\n\n// return node.name === name;\n// };\n\n// export const isImportCall = (calleePath: NodePath<tt.CallExpression>) => {\n// return t.isImport(calleePath.node.callee);\n// };\n\n// export const verifyTsConfigPaths = async (\n// tsconfigAbsPath: string,\n// userAliases?: AliasOption,\n// ) => {\n// const { readTsConfigByFile, chalk } = await import('@modern-js/utils');\n// if (!userAliases) {\n// return;\n// }\n\n// const paths = Object.keys(\n// readTsConfigByFile(tsconfigAbsPath).compilerOptions?.paths || {},\n// ).map(key => key.replace(/\\/\\*$/, ''));\n\n// Object.keys(userAliases).forEach(name => {\n// if (paths.includes(name)) {\n// throw new Error(\n// chalk.red(\n// `It looks like you have configured the alias ${chalk.bold(\n// name,\n// )} in both the modern.config file and tsconfig.json.\\n Please remove the configuration in modern.config file and just keep the configuration in tsconfig.json.`,\n// ),\n// );\n// }\n// });\n// };\n\nexport const assignTsConfigPath = async (\n config: BaseBuildConfig,\n options: BuildCommandOptions,\n) => {\n const { defaultTsConfigPath } = await import('../constants/dts');\n\n // user run `build --tsconfig './tsconfig.build.json'`\n if (\n typeof options.tsconfig === 'string' &&\n options.tsconfig !== defaultTsConfigPath\n ) {\n config.dts = {\n only: false,\n distPath: './',\n ...(config.dts ?? {}),\n tsconfigPath: options.tsconfig,\n };\n }\n\n return config;\n};\n"]}
1
+ {"version":3,"file":null,"mappings":"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","names":[],"sources":["../../src/utils/dts.ts"],"sourcesContent":["import path from 'path';\n// import type { NodePath } from '../../compiled/@babel/traverse';\n// import type * as tt from '../../compiled/@babel/types';\n// import t from '../../compiled/@babel/types';\nimport type {\n ITsconfig,\n BundlelessGeneratorDtsConfig,\n BuildCommandOptions,\n BaseBuildConfig,\n // AliasOption,\n} from '../types';\n\nexport const generatorTsConfig = async (\n config: BundlelessGeneratorDtsConfig,\n) => {\n const { fs, nanoid } = await import('@modern-js/utils');\n const { dtsTempDirectory } = await import('../constants/dts');\n\n const { appDirectory, sourceDir: absSourceDir, tsconfigPath } = config;\n const tempDistAbsRootPath = path.join(\n appDirectory,\n `${dtsTempDirectory}/${nanoid()}`,\n );\n const tempDistAbsOurDir = path.join(\n tempDistAbsRootPath,\n path.relative(appDirectory, absSourceDir),\n );\n\n const tempTsconfigPath = path.join(tempDistAbsRootPath, `tsconfig.json`);\n fs.ensureFileSync(tempTsconfigPath);\n\n const extendsPath = path.join(\n path.relative(path.dirname(tempTsconfigPath), path.dirname(tsconfigPath)),\n path.basename(tempTsconfigPath),\n );\n\n const resetConfig: ITsconfig = {\n extends: extendsPath,\n compilerOptions: {\n // Ensure that .d.ts files are created by tsc, but not .js files\n declaration: true,\n emitDeclarationOnly: true,\n outDir: tempDistAbsOurDir,\n },\n };\n\n fs.writeJSONSync(tempTsconfigPath, resetConfig);\n\n return {\n tempTsconfigPath,\n tempDistAbsRootPath,\n tempDistAbsSrcPath: tempDistAbsOurDir,\n };\n};\n\nexport const getTscBinPath = async (appDirectory: string) => {\n const { fs } = await import('@modern-js/utils');\n const { default: findUp, exists: pathExists } = await import(\n '../../compiled/find-up'\n );\n const tscBinFile = await findUp(\n async (directory: string) => {\n const targetFilePath = path.join(directory, './node_modules/.bin/tsc');\n const hasTscBinFile = await pathExists(targetFilePath);\n if (hasTscBinFile) {\n return targetFilePath;\n }\n return undefined;\n },\n { cwd: appDirectory },\n );\n\n if (!tscBinFile || !fs.existsSync(tscBinFile)) {\n throw new Error(\n 'Failed to excute the `tsc` command, please check if `typescript` is installed correctly in the current directory.',\n );\n }\n\n return tscBinFile;\n};\n\nexport const resolveAlias = async (\n config: BundlelessGeneratorDtsConfig,\n options: {\n userTsconfig: ITsconfig;\n tempTsconfigPath: string;\n tempDistAbsRootPath: string;\n tempDistAbsSrcPath: string;\n },\n watchFilenames: string[] = [],\n) => {\n const { userTsconfig, tempDistAbsSrcPath, tempDistAbsRootPath } = options;\n const { globby, fs } = await import('@modern-js/utils');\n const { transformDtsAlias } = await import('./tspaths-transform');\n const { distAbsPath } = config;\n const dtsDistPath = `${tempDistAbsSrcPath}/**/*.d.ts`;\n const dtsFilenames =\n watchFilenames.length > 0\n ? watchFilenames\n : globby.sync(dtsDistPath, { absolute: true });\n const result = transformDtsAlias({\n filenames: dtsFilenames,\n baseUrl: tempDistAbsRootPath,\n paths: userTsconfig.compilerOptions?.paths ?? {},\n });\n for (const r of result) {\n fs.writeFileSync(r.path, r.content);\n }\n\n await fs.copy(tempDistAbsSrcPath, distAbsPath);\n};\n\n// export const matchesPattern = (calleePath: NodePath, pattern: string) => {\n// const { node } = calleePath;\n\n// if (t.isMemberExpression(node)) {\n// return calleePath.matchesPattern(pattern);\n// }\n\n// if (!t.isIdentifier(node) || pattern.includes('.')) {\n// return false;\n// }\n\n// const name = pattern.split('.')[0];\n\n// return node.name === name;\n// };\n\n// export const isImportCall = (calleePath: NodePath<tt.CallExpression>) => {\n// return t.isImport(calleePath.node.callee);\n// };\n\n// export const verifyTsConfigPaths = async (\n// tsconfigAbsPath: string,\n// userAliases?: AliasOption,\n// ) => {\n// const { readTsConfigByFile, chalk } = await import('@modern-js/utils');\n// if (!userAliases) {\n// return;\n// }\n\n// const paths = Object.keys(\n// readTsConfigByFile(tsconfigAbsPath).compilerOptions?.paths || {},\n// ).map(key => key.replace(/\\/\\*$/, ''));\n\n// Object.keys(userAliases).forEach(name => {\n// if (paths.includes(name)) {\n// throw new Error(\n// chalk.red(\n// `It looks like you have configured the alias ${chalk.bold(\n// name,\n// )} in both the modern.config file and tsconfig.json.\\n Please remove the configuration in modern.config file and just keep the configuration in tsconfig.json.`,\n// ),\n// );\n// }\n// });\n// };\n\nexport const assignTsConfigPath = async (\n config: BaseBuildConfig,\n options: BuildCommandOptions,\n) => {\n const { defaultTsConfigPath } = await import('../constants/dts');\n\n // user run `build --tsconfig './tsconfig.build.json'`\n if (\n typeof options.tsconfig === 'string' &&\n options.tsconfig !== defaultTsConfigPath\n ) {\n config.dts = {\n only: false,\n distPath: './',\n ...(config.dts ?? {}),\n tsconfigPath: options.tsconfig,\n };\n }\n\n return config;\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  import type { LibuildPlugin } from '@modern-js/libuild';
2
- import type { BaseBuildConfig } from '../types';
3
- export declare const watchPlugin: (config: BaseBuildConfig) => LibuildPlugin;
2
+ import type { BaseBuildConfig, PluginAPI, ModuleTools } from '../types';
3
+ export declare const watchPlugin: (api: PluginAPI<ModuleTools>, config: BaseBuildConfig) => LibuildPlugin;
4
4
  export declare const externalPlugin: (config: BaseBuildConfig, options: {
5
5
  appDirectory: string;
6
6
  }) => LibuildPlugin;
@@ -47,7 +47,7 @@ __export(libuild_plugins_exports, {
47
47
  watchPlugin: () => watchPlugin
48
48
  });
49
49
  module.exports = __toCommonJS(libuild_plugins_exports);
50
- const watchPlugin = (config) => {
50
+ const watchPlugin = (api, config) => {
51
51
  return {
52
52
  name: "watch-plugin",
53
53
  apply(compiler) {
@@ -58,6 +58,8 @@ const watchPlugin = (config) => {
58
58
  console.info(
59
59
  yield watchSectionTitle(titleText, SectionTitleStatus.Log)
60
60
  );
61
+ const runner = api.useHookRunners();
62
+ runner.buildWatchJs({ buildConfig: config });
61
63
  }));
62
64
  }
63
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":null,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,cAAc,CAAC,WAA2C;AACrE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM,UAAU;AACd,eAAS,MAAM,YAAY,IAAI,gBAAgB,MAAY;AACzD,cAAM,EAAE,kBAAkB,IAAI,MAAM,6CAAO;AAC3C,cAAM,EAAE,mBAAmB,IAAI,MAAM,6CAAO;AAC5C,cAAM,YAAY,IAChB,OAAO,cAAc,WAAW,WAAW,gBACzC,OAAO,UAAU,OAAO;AAC5B,gBAAQ;AAAA,UACN,MAAM,kBAAkB,WAAW,mBAAmB,GAAG;AAAA,QAC3D;AAAA,MACF,EAAC;AAAA,IACH;AAAA,EACF;AACF;AAEO,MAAM,iBAAiB,CAC5B,QACA,YACkB;AAClB,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM,UAAU;AACd,eAAS,MAAM,WAAW,WAAW,mBAAmB,MAAY;AAClE,cAAM,EAAE,kBAAkB,IAAI,MAAM,6CAAO;AAC3C,cAAM,iBAAiB,MAAM,kBAAkB,QAAQ,OAAO;AAC9D,iBAAS,OAAO,WAAW;AAAA,MAC7B,EAAC;AAAA,IACH;AAAA,EACF;AACF;;;;;;","names":[],"sources":["../../src/utils/libuild-plugins.ts"],"sourcesContent":["import type { LibuildPlugin } from '@modern-js/libuild';\nimport type { BaseBuildConfig } from '../types';\n\nexport const watchPlugin = (config: BaseBuildConfig): LibuildPlugin => {\n return {\n name: 'watch-plugin',\n apply(compiler) {\n compiler.hooks.watchChange.tap('watch-plugin', async () => {\n const { watchSectionTitle } = await import('./log');\n const { SectionTitleStatus } = await import('../constants/log');\n const titleText = `[${\n config.buildType === 'bundle' ? 'Bundle' : 'Bundleless'\n }:${config.format}_${config.target}]`;\n console.info(\n await watchSectionTitle(titleText, SectionTitleStatus.Log),\n );\n });\n },\n };\n};\n\nexport const externalPlugin = (\n config: BaseBuildConfig,\n options: { appDirectory: string },\n): LibuildPlugin => {\n return {\n name: 'external-plugin',\n apply(compiler) {\n compiler.hooks.initialize.tapPromise('external-plugin', async () => {\n const { getFinalExternals } = await import('./builder');\n const finalExternals = await getFinalExternals(config, options);\n compiler.config.external = finalExternals;\n });\n },\n };\n};\n"]}
1
+ {"version":3,"file":null,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,cAAc,CACzB,KACA,WACkB;AAClB,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM,UAAU;AACd,eAAS,MAAM,YAAY,IAAI,gBAAgB,MAAY;AACzD,cAAM,EAAE,kBAAkB,IAAI,MAAM,6CAAO;AAC3C,cAAM,EAAE,mBAAmB,IAAI,MAAM,6CAAO;AAC5C,cAAM,YAAY,IAChB,OAAO,cAAc,WAAW,WAAW,gBACzC,OAAO,UAAU,OAAO;AAC5B,gBAAQ;AAAA,UACN,MAAM,kBAAkB,WAAW,mBAAmB,GAAG;AAAA,QAC3D;AACA,cAAM,SAAS,IAAI,eAAe;AAClC,eAAO,aAAa,EAAE,aAAa,OAAO,CAAC;AAAA,MAC7C,EAAC;AAAA,IACH;AAAA,EACF;AACF;AAEO,MAAM,iBAAiB,CAC5B,QACA,YACkB;AAClB,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM,UAAU;AACd,eAAS,MAAM,WAAW,WAAW,mBAAmB,MAAY;AAClE,cAAM,EAAE,kBAAkB,IAAI,MAAM,6CAAO;AAC3C,cAAM,iBAAiB,MAAM,kBAAkB,QAAQ,OAAO;AAC9D,iBAAS,OAAO,WAAW;AAAA,MAC7B,EAAC;AAAA,IACH;AAAA,EACF;AACF;;;;;;","names":[],"sources":["../../src/utils/libuild-plugins.ts"],"sourcesContent":["import type { LibuildPlugin } from '@modern-js/libuild';\nimport type { BaseBuildConfig, PluginAPI, ModuleTools } from '../types';\n\nexport const watchPlugin = (\n api: PluginAPI<ModuleTools>,\n config: BaseBuildConfig,\n): LibuildPlugin => {\n return {\n name: 'watch-plugin',\n apply(compiler) {\n compiler.hooks.watchChange.tap('watch-plugin', async () => {\n const { watchSectionTitle } = await import('./log');\n const { SectionTitleStatus } = await import('../constants/log');\n const titleText = `[${\n config.buildType === 'bundle' ? 'Bundle' : 'Bundleless'\n }:${config.format}_${config.target}]`;\n console.info(\n await watchSectionTitle(titleText, SectionTitleStatus.Log),\n );\n const runner = api.useHookRunners();\n runner.buildWatchJs({ buildConfig: config });\n });\n },\n };\n};\n\nexport const externalPlugin = (\n config: BaseBuildConfig,\n options: { appDirectory: string },\n): LibuildPlugin => {\n return {\n name: 'external-plugin',\n apply(compiler) {\n compiler.hooks.initialize.tapPromise('external-plugin', async () => {\n const { getFinalExternals } = await import('./builder');\n const finalExternals = await getFinalExternals(config, options);\n compiler.config.external = finalExternals;\n });\n },\n };\n};\n"]}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "module-tools",
12
12
  "lib-tools"
13
13
  ],
14
- "version": "2.1.1-beta.2",
14
+ "version": "2.2.1-beta.0",
15
15
  "bin": {
16
16
  "modern": "./bin/modern.js",
17
17
  "modern-module": "./bin/modern.js"
@@ -36,23 +36,20 @@
36
36
  }
37
37
  },
38
38
  "dependencies": {
39
- "@modern-js/core": "2.1.0",
40
39
  "@modern-js/libuild": "~0.8.0",
41
- "@modern-js/new-action": "2.1.0",
42
- "@modern-js/plugin": "2.1.0",
43
- "@modern-js/plugin-i18n": "2.1.0",
44
- "@modern-js/upgrade": "2.1.0",
45
- "@modern-js/utils": "2.1.0",
46
- "@modern-js/plugin-changeset": "2.1.0",
47
- "@modern-js/plugin-lint": "2.1.0",
48
40
  "@modern-js/libuild-plugin-svgr": "~0.8.0",
49
- "@modern-js/libuild-plugin-swc": "~0.8.0"
41
+ "@modern-js/libuild-plugin-swc": "~0.8.0",
42
+ "@modern-js/core": "2.2.0",
43
+ "@modern-js/plugin-i18n": "2.2.0",
44
+ "@modern-js/plugin": "2.2.0",
45
+ "@modern-js/plugin-changeset": "2.2.0",
46
+ "@modern-js/upgrade": "2.2.0",
47
+ "@modern-js/utils": "2.2.0",
48
+ "@modern-js/plugin-lint": "2.2.0",
49
+ "@modern-js/new-action": "2.2.0"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@modern-js/self": "npm:@modern-js/module-tools@*",
53
- "@modern-js/builder-webpack-provider": "2.1.0",
54
- "@scripts/build": "2.1.0",
55
- "@scripts/jest-config": "2.1.0",
56
53
  "@types/jest": "^27",
57
54
  "@types/node": "^14",
58
55
  "@types/fs-extra": "9.0.13",
@@ -62,7 +59,10 @@
62
59
  "postcss": "8.4.6",
63
60
  "postcss-alias": "2.0.0",
64
61
  "react": "17",
65
- "typescript": "^4"
62
+ "typescript": "^4",
63
+ "@modern-js/builder-webpack-provider": "2.2.0",
64
+ "@scripts/build": "2.2.0",
65
+ "@scripts/jest-config": "2.2.0"
66
66
  },
67
67
  "publishConfig": {
68
68
  "registry": "https://registry.npmjs.org/",