summaryrefslogtreecommitdiff
path: root/deps/npm/lib/install/action/prepare.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/lib/install/action/prepare.js')
-rw-r--r--deps/npm/lib/install/action/prepare.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/deps/npm/lib/install/action/prepare.js b/deps/npm/lib/install/action/prepare.js
new file mode 100644
index 0000000000..771a2a9399
--- /dev/null
+++ b/deps/npm/lib/install/action/prepare.js
@@ -0,0 +1,27 @@
+'use strict'
+var chain = require('slide').chain
+var lifecycle = require('../../utils/lifecycle.js')
+var packageId = require('../../utils/package-id.js')
+var prepublishWarning = require('../../utils/warn-deprecated.js')('prepublish-on-install')
+var moduleStagingPath = require('../module-staging-path.js')
+
+module.exports = function (staging, pkg, log, next) {
+ log.silly('prepublish', packageId(pkg))
+ // TODO: for `npm@5`, change the behavior and remove this warning.
+ // see https://github.com/npm/npm/issues/10074 for details
+ if (pkg.package && pkg.package.scripts && pkg.package.scripts.prepublish) {
+ prepublishWarning([
+ 'As of npm@5, `prepublish` scripts will run only for `npm publish`.',
+ '(In npm@4 and previous versions, it also runs for `npm install`.)',
+ 'See the deprecation note in `npm help scripts` for more information.'
+ ])
+ }
+ var buildpath = moduleStagingPath(staging, pkg)
+ chain(
+ [
+ [lifecycle, pkg.package, 'prepublish', buildpath, false, false],
+ [lifecycle, pkg.package, 'prepare', buildpath, false, false]
+ ],
+ next
+ )
+}