module-A/
├── package.json
├── src/
│ └── ...
└── submodule/
├── package.json
└── src/
└── ...
Then:
{
"name": "module-A",
"version": "1.0.0",
"scripts": {
"postinstall": "cd submodule && npm install"
},
"dependencies": {
// dependencies của module A
}
}
Script postinstall sẽ chạy sau khi npm install hoàn tất việc cài đặt dependencies của module A.
git submodule init git submodule update
{
"name": "module-A",
"version": "1.0.0",
"workspaces": ["submodule"],
"dependencies": {
// dependencies chung
}
}
{
"name": "submodule",
"version": "1.0.0",
"dependencies": {
// dependencies riêng của submodule
}
}
Khi sử dụng workspaces, npm install ở thư mục gốc sẽ cài đặt dependencies cho cả module A và submodule, đồng thời tối ưu hóa cấu trúc node_modules.
Prefer: https://stackoverflow.com/questions/72851445/how-to-specify-an-npm-workspace-as-a-dependency
Lưu ý: