` 1、gy-common-mobile工程 复制package-install.json的dependencies字段 到 package.json 然后gy-common-mobile工程执行yarn 删除package.json的dependencies字段内容
2、lambo-design-mobile工程 新建publish文件夹,和packages文件夹同级 在publish文件夹下新建link-add.js文件 修改package.json文件 在 "scripts" 中增加 "link-all": "node publish/link-all.js" lambo-design-mobile工程执行yarn link-all
3、gy-common-mobile工程执行yarn link-add gy-common-mobile工程执行yarn build gy-common-mobile工程执行yarn link
4、业务工程执行yarn link @indfnd/common-mobile-pro
link-add.js文件内容如下: const fs = require('fs'); const path = require('path'); const { execSync } = require('child_process');
// 获取当前目录下的 node_modules 目录 const projectRoot = path.resolve(__dirname, '..'); const nodeModulesPath = path.join(projectRoot, 'node_modules'); const lamboDesignPath = path.join(nodeModulesPath, '@lambo-design-mobile');
// 读取 @lambo-design-mobile 目录中的所有文件夹 fs.readdir(lamboDesignPath, (err, folders) => { if (err) { console.error('Error reading @lambo-design-mobile:', err); return; }
// 遍历每一个文件夹
folders.forEach((folder) => {
const packageJsonPath = path.join(lamboDesignPath, folder, 'package.json');
fs.readFile(packageJsonPath, 'utf8', (err, data) => {
if (err) {
console.error(Error reading ${packageJsonPath}:
, err);
return;
}
try {
const packageJson = JSON.parse(data);
// 执行 yarn link
console.log(`Linking package: ${packageJson.name}`);
execSync(`yarn link --cwd=${path.join(lamboDesignPath, folder)}`, {
stdio: 'inherit',
});
} catch (error) {
console.error(`Failed to parse ${packageJsonPath}:`, error);
}
});
}); });
`