Describe the bug
When upgrading OpenClaw using physical packaging (npm pack followed by npm install -g ./openclaw-*.tgz), the dependencies of workspace plugins (like @larksuiteoapi/node-sdk in extensions/feishu) are not bundled into the tarball. This causes the installed global OpenClaw to fail at runtime when loading the plugin because the node modules for the extension are missing.
To Reproduce
- Run
npm pack in the root directory.
- Run
npm install -g ./openclaw-*.tgz.
- Start the application or use the feishu plugin.
- See error:
Error: Cannot find module '@larksuiteoapi/node-sdk'
Expected behavior
The plugin's dependencies should be properly bundled or resolved during the global installation.
Workaround
Currently, we have to manually run npm install -g @larksuiteoapi/node-sdk after the OpenClaw global installation to restore the missing dependency.
Suggested Fix
Refactor the build/packaging mechanism so that either:
- The
bundledDependencies include the required sub-module dependencies.
- A custom build script recursively packs and injects the plugin dependencies into the main
package.json before npm pack.
Describe the bug
When upgrading OpenClaw using physical packaging (
npm packfollowed bynpm install -g ./openclaw-*.tgz), the dependencies of workspace plugins (like@larksuiteoapi/node-sdkinextensions/feishu) are not bundled into the tarball. This causes the installed global OpenClaw to fail at runtime when loading the plugin because the node modules for the extension are missing.To Reproduce
npm packin the root directory.npm install -g ./openclaw-*.tgz.Error: Cannot find module '@larksuiteoapi/node-sdk'Expected behavior
The plugin's dependencies should be properly bundled or resolved during the global installation.
Workaround
Currently, we have to manually run
npm install -g @larksuiteoapi/node-sdkafter the OpenClaw global installation to restore the missing dependency.Suggested Fix
Refactor the build/packaging mechanism so that either:
bundledDependenciesinclude the required sub-module dependencies.package.jsonbeforenpm pack.