diff --git a/.changeset/cool-ants-complain.md b/.changeset/cool-ants-complain.md new file mode 100644 index 000000000000..56b0339970f2 --- /dev/null +++ b/.changeset/cool-ants-complain.md @@ -0,0 +1,11 @@ +--- +'@modern-js/monorepo-tools': patch +'@modern-js/module-tools': patch +'@modern-js/app-tools': patch +'@modern-js/doc-tools': patch +'@modern-js/core': patch +--- + +fix(core): toolsType is overridden when install multiple solutions + +fix(core): 修复安装多个 solutions 时 toolsType 被覆盖的问题 diff --git a/packages/cli/core/src/context.ts b/packages/cli/core/src/context.ts index 6dc8516e29ef..bd69feabb036 100644 --- a/packages/cli/core/src/context.ts +++ b/packages/cli/core/src/context.ts @@ -7,7 +7,6 @@ import type { IAppContext, InternalPlugins, NormalizedConfig, - ToolsType, } from './types'; export const AppContext = createContext({} as IAppContext); @@ -50,7 +49,6 @@ export const initAppContext = ({ options, serverConfigFile, serverInternalPlugins, - toolsType, }: { appDirectory: string; plugins: CliPlugin[]; @@ -64,7 +62,6 @@ export const initAppContext = ({ }; serverConfigFile: string; serverInternalPlugins: InternalPlugins; - toolsType?: ToolsType; }): IAppContext => { const { metaName = 'modern-js', @@ -100,6 +97,5 @@ export const initAppContext = ({ apiOnly: false, internalDirAlias: `@_${metaName.replace(/-/g, '_')}_internal`, internalSrcAlias: `@_${metaName.replace(/-/g, '_')}_src`, - toolsType, }; }; diff --git a/packages/cli/core/src/createCli.ts b/packages/cli/core/src/createCli.ts index 73dd4b59f161..430d0b1ade8a 100644 --- a/packages/cli/core/src/createCli.ts +++ b/packages/cli/core/src/createCli.ts @@ -79,7 +79,6 @@ export const createCli = () => { plugins.forEach(plugin => plugin && manager.usePlugin(plugin)); const appContext = initAppContext({ - toolsType: mergedOptions?.toolsType, appDirectory, plugins, configFile: loaded.filePath, diff --git a/packages/cli/core/src/types/coreOptions.ts b/packages/cli/core/src/types/coreOptions.ts index 236604a87803..1fca14cd2912 100644 --- a/packages/cli/core/src/types/coreOptions.ts +++ b/packages/cli/core/src/types/coreOptions.ts @@ -1,6 +1,5 @@ import type { ErrorObject } from '@modern-js/utils/compiled/ajv'; import type { InternalPlugins } from './plugin'; -import type { ToolsType } from './context'; import type { UserConfig } from './config'; export interface CoreOptions { @@ -21,7 +20,6 @@ export interface CoreOptions { distDir?: string; sharedDir?: string; }; - toolsType?: ToolsType; /** force the modern-js core auto register plugin exist in the package.json */ forceAutoLoadPlugins?: boolean; diff --git a/packages/solutions/app-tools/bin/modern.js b/packages/solutions/app-tools/bin/modern.js index f18a88d977a1..e321b967fb64 100755 --- a/packages/solutions/app-tools/bin/modern.js +++ b/packages/solutions/app-tools/bin/modern.js @@ -11,5 +11,4 @@ require('@modern-js/core/runBin').run({ server: INTERNAL_SERVER_PLUGINS, autoLoad: INTERNAL_APP_TOOLS_RUNTIME_PLUGINS, }, - toolsType: 'app-tools', }); diff --git a/packages/solutions/app-tools/src/index.ts b/packages/solutions/app-tools/src/index.ts index 331545f2217e..71d2cc5c30fb 100644 --- a/packages/solutions/app-tools/src/index.ts +++ b/packages/solutions/app-tools/src/index.ts @@ -150,6 +150,12 @@ export default ( ], setup: api => { + const appContext = api.useAppContext(); + api.setAppContext({ + ...appContext, + toolsType: 'app-tools', + }); + const locale = getLocaleLanguage(); i18n.changeLanguage({ locale }); diff --git a/packages/solutions/app-tools/tests/helper.ts b/packages/solutions/app-tools/tests/helper.ts index fd475ec6806b..309b3c01fe07 100644 --- a/packages/solutions/app-tools/tests/helper.ts +++ b/packages/solutions/app-tools/tests/helper.ts @@ -29,7 +29,6 @@ export const runCli = async (options: { internalPlugins: { cli: plugins, }, - toolsType: 'app-tools', forceAutoLoadPlugins: true, }, disableWatcher: true, diff --git a/packages/solutions/doc-tools/bin/modern.js b/packages/solutions/doc-tools/bin/modern.js index fb8229f20a9c..4972f507d49d 100755 --- a/packages/solutions/doc-tools/bin/modern.js +++ b/packages/solutions/doc-tools/bin/modern.js @@ -5,5 +5,4 @@ require('@modern-js/core/runBin').run({ internalPlugins: { cli: INTERNAL_DOC_TOOLS_PLUGINS, }, - toolsType: 'doc-tools', }); diff --git a/packages/solutions/doc-tools/src/index.ts b/packages/solutions/doc-tools/src/index.ts index c80f094a74db..bdc0cfb6808d 100644 --- a/packages/solutions/doc-tools/src/index.ts +++ b/packages/solutions/doc-tools/src/index.ts @@ -36,6 +36,12 @@ const WATCH_FILE_TYPES = ['.md', '.mdx', '.tsx', '.jsx', '.ts', '.js']; export default (options: DocToolsOptions = {}): CliPlugin => ({ name: '@modern-js/doc-tools', setup: async api => { + const appContext = api.useAppContext(); + api.setAppContext({ + ...appContext, + toolsType: 'doc-tools', + }); + const { configFiles = MODERN_CONFIG_FILES, extraDocConfig = {} } = options; const { dev, build, serve } = await import('@modern-js/doc-core'); let server: ServerInstance | undefined; diff --git a/packages/solutions/module-tools/bin/modern.js b/packages/solutions/module-tools/bin/modern.js index 7aea598dbf39..7ca988384714 100755 --- a/packages/solutions/module-tools/bin/modern.js +++ b/packages/solutions/module-tools/bin/modern.js @@ -5,5 +5,4 @@ require('@modern-js/core/runBin').run({ internalPlugins: { cli: INTERNAL_MODULE_TOOLS_PLUGINS, }, - toolsType: 'module-tools', }); diff --git a/packages/solutions/module-tools/src/cli.ts b/packages/solutions/module-tools/src/cli.ts index 136776587f29..1f928745d420 100644 --- a/packages/solutions/module-tools/src/cli.ts +++ b/packages/solutions/module-tools/src/cli.ts @@ -11,6 +11,12 @@ export const cli = (): CliPlugin => ({ }); const setup: CliPlugin['setup'] = async api => { + const appContext = api.useAppContext(); + api.setAppContext({ + ...appContext, + toolsType: 'module-tools', + }); + const prepare = async () => { const { initLocalLanguage } = await import('./utils/language'); await initLocalLanguage(); diff --git a/packages/solutions/monorepo-tools/bin/modern.js b/packages/solutions/monorepo-tools/bin/modern.js index 0854331e7c17..969f1853b48e 100755 --- a/packages/solutions/monorepo-tools/bin/modern.js +++ b/packages/solutions/monorepo-tools/bin/modern.js @@ -1,5 +1,3 @@ #!/usr/bin/env node -require('@modern-js/core/runBin').run({ - toolsType: 'monorepo-tools', -}); +require('@modern-js/core/runBin').run({}); diff --git a/packages/solutions/monorepo-tools/src/index.ts b/packages/solutions/monorepo-tools/src/index.ts index 4a4f954a23cb..22b7a8a75a29 100644 --- a/packages/solutions/monorepo-tools/src/index.ts +++ b/packages/solutions/monorepo-tools/src/index.ts @@ -20,6 +20,12 @@ export default (): CliPlugin => ({ usePlugins: [changesetPlugin(), lintPlugin()], registerHook: hooks, setup: api => { + const appContext = api.useAppContext(); + api.setAppContext({ + ...appContext, + toolsType: 'monorepo-tools', + }); + const locale = getLocaleLanguage(); i18n.changeLanguage({ locale });