Releases: heikomat/minstall
3.3.0
New Features
- new Flag
--no-hoist <dependency>
. Setting this makes minstall not hoist that
dependency.<dependency>
has the form name@versionRange, e.g.
--no-hoist aurelia-cli@^0.30.1
. If you omit the versionRange, no version of
that dependency will be hoisted. The name can be a glob expression (see
minimatch), e.g.
--no-hoist aurelia-*
. This is useful for dependencies that don't play nice
when hoisted/linked. This flag can be added multiple times.
3.2.0
New Features
- new Flag
--assume-local-modules-satisfy-non-semver-dependency-versions
(aka
--trust-local-modules
). Setting this makes minstall assume that a local
module satisfies every requested version of that module that is not valid
semver (like github-urls and tag-names)
Bugfixes
- Fixes a bug where in rare cases minstall was wrongfully printing error-messages about installed packages not being found
- Added a workaround to work around snyamathi/semver-intersect#7
- If an error occurs during installation, then minstall will now actually fail with exit-code 1
3.1.0
New Features
- new
--link-only
-flag (makes minstall fix all linked dependencies (including links to local modules))
Bugfixes
Minstall will now no longer try to hoist non-semver-dependencies, as minstall wouldn't be able to find them after the installation
Improvements
The error-message when a package.json couldn't be parsed now includes the location of said package.json
3.0.4
3.0.3
3.0.2
3.0.1
3.0.0
New Features
- new
--cleanup
-flag (makes minstall remove all node_modules-folders before installing dependencies) - new
--dependency-check-only
-flag (makes install print the dependency-check only, without touching any files or installing anything) - optimized detection of optimal dependency-installation-folder
- npm5-support through optimized dependency installation and forced
--cleanup
-flag - parallel installation of conflicting dependencies
Improvements
minstall 3 is way faster than minstall 2 because of better detection of optimized
dependency installation, parallel installation of conflicting dependencies and
npm5 support.
Breaking changes
minstall now works completely different to version 2.0.0. Before you needed to
add minstall as postinstall to every level of local modules. Now only the
parent-project needs the minstall-postinstall.
before:
modules are found in parent-folders through node-module resolution
my-modular-app
├── modules
│ ├── database (@2.0.0) [requires [email protected] and tasks]
│ ├── tasks (@2.0.0) [requires [email protected], xyz, which in return requires [email protected]]
│ │ └── node_modules
│ │ └── [email protected]
│ ├── test1(@2.0.0) [requires [email protected]]
│ │ └── node_modules
│ │ └── [email protected]
│ └── test2(@2.0.0) [requires [email protected]]
├── node_modules
│ ├── [email protected]
│ ├── minstall
│ ├── database ../modules/database
│ └── tasks -> ../modules/tasks
├── index.js
└── package.json [requires minstall, [email protected] and [email protected]]
now:
the correct versions of the dependency are installed once and linked to the
destinations. in this example, [email protected] and [email protected] are only installed once,
while [email protected] would've been installed twice with minstall 2.0.2
my-modular-app
├── modules
│ ├── database (@2.0.0) [requires [email protected] and tasks]
│ │ └── node_modules
│ │ └── abc -> ../../../node_modules/abc
│ │ └── tasks -> ../../tasks
│ ├── tasks (@2.0.0) [requires [email protected], xyz, which in return requires [email protected]]
│ │ └── node_modules
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ └── xyz
│ ├── test1 (@2.0.0) [requires [email protected]]
│ │ └── node_modules
│ │ └── abc -> ../../tasks/node_modules/abc [<- NOT REINSTALLED, BUT LINKED!]
│ └── test2 (@2.0.0) [requires [email protected]]
│ └── node_modules
│ └── abc -> ../../../node_modules/abc
├── node_modules
│ ├── [email protected]
│ ├── minstall
│ ├── database ../modules/database
│ └── tasks -> ../modules/tasks
├── index.js
└── package.json [requires minstall, [email protected] and [email protected]]