@andimeier/deploy-node v0.1.1
deploy-node
Deploys Javascript applications. To be used as a npm script because some properties will be drawn
from the environment variables which npm adds for the scripts.
At the moment, it simply builds a node application, the result being:
- a build folder cointaining the executable application
- a tar.gz file containing the targz'ed build folder (this is the "deployment package")
Folder structure
The specified build folder (the "dist" folder) will be populated with the following items:
- an application folder
- the targz'ed application folder
The filename of both is:
PROJECT_VERSION+TIMESTAMPSo, the folder is e.g.:
spectre_v1.2.3/while the deployment package is
spectre_v1.2.3.tar.gzSteps
deploy-node will perform the following steps:
- copy all source files to the
distfolder in a subfolder named after the project, e.g.dist/PROJECT_v1.0.0 - install
node_moduleswith--productionflag, so only the production dependencies are installed - generate a version file
- targz the folder
Installation
Include the deploy scripts using:
npm install --save-dev deploy-nodeThis will install the deploy-node libs into your node_modules and a binary named deploy in node_modules/.bin, so that npm scripts can use the deploy command.
Usage
Typical usage is to include deploy-node in your npm scripts in package.json like this:
{
...
"scripts": {
"build": "deploy --version-file version.json"
}
}List all available options with deploy --help, the output will be something like this:
deploy.js
Deployment script for node and Angular apps.
Options
-v, --verbose Verbose output
-m, --message message Deployment message
--timestamp Add timestamp to filename of output file
--detect-config-changes Warn if the config files have changed since the last tagged version
--print-last-commit Print the log message of the last commit
-p, --project name Name of the project as it. This will be used as a prefix for the filename of
the deployment package. If omitted, the script tries to retrieve the project
name from the environment (this only works if the script was invoked via 'npm
run'). In this case, the project name specified in the package.json file will
be used.
--workdir-clean Warn if the work directory is dirty
--version-file filename File name of version file to be written. If omitted, no version file will be
generated.
-b, --batch Enable batch mode. There are no interactions, no user confirmations etc.
Suitable for e.g. a build triggered by a CI server
-o, --build-folder folder Folder in which the build takes place. The contents of this folder will then
be packaged to the output file. Default is `dist`.
-s, --source-folder folder Folder containing the source file to be packaged. The contents of this folder
will be transferred to the build folder, then packaged to the output file.
Default is `src`.
-z, --tar-gz Tarzip the result. When this option is given, the build folder will contain
a folder with
-h, --help Display this help message