node-module-collector
v1.1.4
Published
collect all production node modules used in a project
Downloads
125
Maintainers
Readme
node-module-collector
This is a simple tool to collect all production node modules used in a project. It supports npm, yarn1, pnpm and yarn berry(with node-modules).
It is useful to collect all production node modules for a electron project, so that you can easily to package them into electron asar.
Design
- Get node modules tree from "npm list"(npm & yarn) or "pnpm list"
- Transform the tree to dependency graph
- Transform the graph to hoisted tree
- Hoisted tree to node modules array
Usage
import { getNodeModules } from 'node-module-collector'
const result = await getNodeModules(rootDir)
result is node modules array, like:
[
{
"name": "foo",
"version": "1.0.0",
"dir": "/path/fixtures/yarn-workspace-demo/node_modules/foo",
"dependencies": [
{
"name": "ms",
"version": "2.0.0",
"dir": "/path/fixtures/yarn-workspace-demo/node_modules/ms"
}
]
},
{
"name": "ms",
"version": "2.1.1",
"dir": "/path/fixtures/yarn-workspace-demo/packages/test-app/node_modules/ms"
}
]
Support
- [x] npm
- [x] pnpm
- [x] pnpm with hosited
- [x] yarn1
- [x] yarn berry(with node-modules)