Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorisaacs <i@izs.me>2010-05-03 23:30:30 +0400
committerisaacs <i@izs.me>2010-05-03 23:30:30 +0400
commitb70b2a09fa76f1cc3e3f9da7dd4f48ac073d6d0a (patch)
treea1e40a1473c3b5db3efea8ad338c966fac605400 /man/scripts.1
parenta3dec1abdf971e83377ff167382c56fe26f6c8d6 (diff)
Add built documentation to project, so that the install doesn't require ronn
Diffstat (limited to 'man/scripts.1')
-rw-r--r--man/scripts.1131
1 files changed, 131 insertions, 0 deletions
diff --git a/man/scripts.1 b/man/scripts.1
new file mode 100644
index 000000000..1c0626342
--- /dev/null
+++ b/man/scripts.1
@@ -0,0 +1,131 @@
+.\" generated with Ronn/v0.4.1
+.\" http://github.com/rtomayko/ronn/
+.
+.TH "NPM\-SCRIPTS" "1" "April 2010" "" ""
+.
+.SH "NAME"
+\fBnpm\-scripts\fR \-\- How npm handles the "scripts" field
+.
+.SH "DESCRIPTION"
+npm supports the "scripts" member of the package.json script, for the
+following scripts:
+.
+.TP
+preinstall
+Run BEFORE the package is installed
+.
+.TP
+install
+Run AFTER the package is installed.
+.
+.TP
+preactivate
+Run BEFORE the package is activated.
+.
+.TP
+activate
+Run AFTER the package has been activated.
+.
+.TP
+deactivate
+Run BEFORE the package is deactivated.
+.
+.TP
+postdeactivate
+Run AFTER the package is deactivated.
+.
+.TP
+uninstall
+Run BEFORE the package is uninstalled.
+.
+.TP
+postuninstall
+Run AFTER the package is uninstalled.
+.
+.SH "Package Lifecycle Env Vars"
+Package scripts are run in an environment where the package.json fields have
+been tacked onto the \fBnpm_package_\fR prefix. So, for instance, if you had \fB{"name":"foo", "version":"1.2.5"}\fR in your package.json file, then in your
+various lifecycle scripts, this would be true:
+.
+.IP "" 4
+.
+.nf
+process.env.npm_package_name === "foo"
+process.env.npm_package_version === "1.2.5"
+.
+.fi
+.
+.IP "" 0
+.
+.P
+Objects are flattened following this format, so if you had\fB{"scripts":{"install":"foo.js"}}\fR in your package.json, then you'd see this
+in the script:
+.
+.IP "" 4
+.
+.nf
+process.env.npm_package_scripts_install = "foo.js"
+.
+.fi
+.
+.IP "" 0
+.
+.P
+Last but not least, the \fBnpm_lifecycle_event\fR environment variable is set to
+whichever stage of the cycle is being executed. So, you could have a single
+script used for different parts of the process which switches based on what's
+currently happening.
+.
+.P
+If the script exits with a code other than 0, then this will abort the
+process.
+.
+.P
+Note that these script files don't have to be nodejs or even javascript
+programs. They just have to be some kind of executable file.
+.
+.P
+For example, if your package.json contains this:
+.
+.IP "" 4
+.
+.nf
+{ "scripts" :
+ { "install" : "scripts/install.js"
+ , "postinstall" : "scripts/install.js"
+ , "activate" : "scripts/install.js"
+ , "uninstall" : "scripts/uninstall.js"
+ }
+}
+.
+.fi
+.
+.IP "" 0
+.
+.P
+then the \fBscripts/install.js\fR will be called for the install, post\-install,
+and activate stages of the lifecycle, and the \fBscripts/uninstall.js\fR would be
+called when the package is uninstalled. Since \fBscripts/install.js\fR is running
+for three different phases, it would be wise in this case to look at the \fBnpm_lifecycle_event\fR environment variable.
+.
+.P
+If you want to run a make command, you can do so. This works just fine:
+.
+.IP "" 4
+.
+.nf
+{ "scripts" :
+ { "preinstall" : "./configure"
+ , "install" : "make"
+ , "test" : "make test"
+ }
+}
+.
+.fi
+.
+.IP "" 0
+.
+.P
+However, the script line is not simply a command line, so \fBmake && make install\fR
+would try to execute the \fBmake\fR command with the arguments \fB&&\fR, \fBmake\fR, and \fBinstall\fR. If you have a lot of stuff to run in a command, put it in a script
+file.