使用rollup打包的时候,子包不打包依赖

 external: (id) => {
    // 排除以下模块
    const externals = [
      "react",
      "react-dom",
      "react/jsx-runtime",
      "@forge/core",
      "@forge/utils",
      "@forge/base",
    ];

    // 精确匹配或以这些模块开头的导入
    return externals.some((ext) => id === ext || id.startsWith(ext + "/"));
  },

父包直接将子包代码打进来,防止查找子包依赖时被路由到了子包的node_modules

resolve({
				exportConditions: ['default', 'node', 'module', 'require'],
				// extensions: [...extensions, '.json'],
				preferBuiltins: true,
				resolveOnly: module => {
					if (!module) {
						return false;
					}
					const modulePath = import.meta.resolve(module)
					if(/^node_modules/.test(modulePath)) {
						return true
					}
					if(modulePath.startsWith('file://' + path.resolve(import.meta.dirname, '../../../tools'))) { // 这里把子包打包进来
						return true
					}
					return false;
				},
				dedupe: ['ink', 'react/jsx-runtime', 'react', 'zod'],// 打包过程中强制使用父包的node_modules
			}),