Current Behavior:
In NPM v7 the preinstall script runs after dependencies are installed, which breaks backwards compatibility with NPM v6.
This may have been on purpose, but I do not see the behavior change listed under breaking changes.
https://blog.npmjs.org/post/626173315965468672/npm-v7-series-beta-release-and-semver-major
Expected Behavior:
The preinstall script should run before dependencies are installed.
Steps To Reproduce:
Clone this minimal sample repo which contains 2 packages:
package1 - This package is designed to fail if installed standalone. It expects the file "temp.txt" to exist that has been generated by a parent package before install.
package2 - This package installs package1 as a dependency, and has a preinstall script that creates the file "temp.txt".
Run cd package2 && npm install.
With NPM v6, the install succeeds because the preinstall script creates "temp.txt" before package1 is installed.
With NPM v7, the install fails because the preinstall script creates "temp.txt" after package1 is installed.
Environment:
- Ubuntu 18.04
- Node: 15.8.0
- npm: 7.5.3
Current Behavior:
In NPM v7 the preinstall script runs after dependencies are installed, which breaks backwards compatibility with NPM v6.
This may have been on purpose, but I do not see the behavior change listed under breaking changes.
https://blog.npmjs.org/post/626173315965468672/npm-v7-series-beta-release-and-semver-major
Expected Behavior:
The preinstall script should run before dependencies are installed.
Steps To Reproduce:
Clone this minimal sample repo which contains 2 packages:
package1- This package is designed to fail if installed standalone. It expects the file "temp.txt" to exist that has been generated by a parent package before install.package2- This package installspackage1as a dependency, and has a preinstall script that creates the file "temp.txt".Run
cd package2 && npm install.With NPM v6, the install succeeds because the preinstall script creates "temp.txt" before
package1is installed.With NPM v7, the install fails because the preinstall script creates "temp.txt" after
package1is installed.Environment: