Comparing version 1.0.4 to 2.1.0
{ | ||
"name": "forge", | ||
"author": "Josh Perez <josh@goatslacker.com>", | ||
"version": "1.0.4", | ||
"description": "An easy to use CLI tool for compiling projects", | ||
"version": "2.1.0", | ||
"description": "insert something here", | ||
"keywords": [ | ||
"build", | ||
"compile", | ||
"compress" | ||
"compress", | ||
"lint", | ||
"minify", | ||
"typed", | ||
"maven", | ||
"preprocessor" | ||
], | ||
"repository": { | ||
@@ -17,17 +20,13 @@ "type": "git", | ||
}, | ||
"licenses": ["MIT"], | ||
"dependencies": { | ||
"jshint": "0.2.x", | ||
"uglify-js": "1.0.x", | ||
"gzip": "0.1.x", | ||
"colors": "0.5.x", | ||
"less": "1.1.x" | ||
"dependency": { | ||
"jshintify": "*", | ||
"mangleify": "*" | ||
}, | ||
"bin": { | ||
"forge": "./bin/forge.js" | ||
"licenses": [ | ||
"MIT" | ||
], | ||
"main": "forge.js", | ||
"bin": { | ||
"forge": "./bin/forge" | ||
}, | ||
"engines": { | ||
@@ -34,0 +33,0 @@ "node": ">= 0.4.0" |
110
README.md
# forge | ||
An easy to use CLI tool written in NodeJS useful for compiling projects. | ||
## Install | ||
I wrote this because I was sick of writing the same Jakefiles over and over again for building my projects. | ||
Now I have a simple CLI tool, I can just cd into my project and run `forge` and have it do it's magic. | ||
npm install forge -g | ||
## Installing | ||
## What? | ||
NPM | ||
`Forge` has a pretty specific use case: you'd like to automate the application | ||
of a set of transformations on a specific file. | ||
sudo npm install forge -g | ||
If you're tired of writing the same [M|J|Sl|C]afiles over and over, | ||
juggling command line scripts, node.js scripts, or even dealing with the | ||
hassle of having a configuration file sitting in your file directory; | ||
then this program is for you. | ||
Unix/Linux | ||
## Philosophy | ||
git clone git://github.com/goatslacker/forge.git | ||
cd forge | ||
sudo make | ||
* No configuration or build files you have to check-in to source control | ||
* Simple command line interface | ||
* Easy to program your own custom transformers | ||
* Use existing transformers that work with [browserify](https://github.com/substack/node-browserify) | ||
## How to use | ||
## Right tool for the job | ||
You can have forge automatically detect your build directory | ||
If you need to automate all the things or love configuring then [grunt](http://gruntjs.com/) | ||
is for you. | ||
cd myproject | ||
forge | ||
If you want something simple and powerful and don't mind programming some then | ||
write a fucking Makefile. | ||
If that fails, you can tell forge the directory. The use is --fileExtension directory | ||
## How? | ||
cd myproject | ||
forge --js source | ||
forge my_file.js transform1 transform2 transform3 | ||
For convenience, you can set a config file `forge.json` in your project's root folder | ||
Example, if you want to lint a file then mangle it: | ||
{ | ||
"files": { | ||
"js": ["src/file1", "src/file2", "src/file3"] | ||
} | ||
} | ||
forge my_file.js jshintify mangleify | ||
Then just run `forge`, it'll automatically pick-up your `forge.json` config | ||
Outputs to stdout | ||
cd myproject | ||
forge | ||
> *Pro-tip*: you can include your forge command in the scripts section of your package.json file. | ||
## Custom config | ||
"scripts": { | ||
"prepublish": "forge foo.js mangleify > build/foo.min.js" | ||
} | ||
Below are the default settings for forge. You can customize these and place them in your `forge.json` config file | ||
For more information see [npm scripts](https://npmjs.org/doc/scripts.html) | ||
{ | ||
/* the application's name */ | ||
appName: CURRENT_DIRECTORY | ||
/* the build directory */ | ||
buildDirectory: 'build', | ||
## Included plug-ins | ||
/* use jshint to check the code */ | ||
lint: true, | ||
* [jshintify](https://github.com/goatslacker/jshintify) | ||
* [mangleify](https://github.com/goatslacker/mangleify) | ||
/* uglify-js compresses the code */ | ||
compress: true, | ||
## Available plug-ins | ||
/* apply gzip after compression */ | ||
gzip: true, | ||
* [coffeeify](https://github.com/substack/coffeeify) | ||
* [icsify](https://github.com/maxtaco/icsify) | ||
* [caching-coffeeify](https://github.com/thlorenz/caching-coffeeify) | ||
* [decomponentify](https://github.com/eugeneware/decomponentify) | ||
* [debowerify](https://github.com/eugeneware/debowerify) | ||
* [deAMDify](https://github.com/jaredhanson/deamdify) | ||
* [hbsfy](https://github.com/epeli/node-hbsfy) | ||
* [liveify](https://github.com/quarterto/liveify) | ||
* [es6ify](https://github.com/thlorenz/es6ify) | ||
* [turn](https://github.com/juliangruber/turn) | ||
/* less for stylesheets */ | ||
less: false, | ||
/* no logging for Forge */ | ||
quiet: false | ||
} | ||
## License | ||
Copyright (C) 2011 by Josh Perez <josh@goatslacker.com> | ||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
The above copyright notice and this permission notice shall be included in | ||
all copies or substantial portions of the Software. | ||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
THE SOFTWARE. | ||
[MIT](http://josh.mit-license.org) |
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Non-existent author
Supply chain riskThe package was published by an npm account that no longer exists.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
0
0
5079
46
71
3
2
- Removedcolors@0.5.x
- Removedgzip@0.1.x
- Removedjshint@0.2.x
- Removedless@1.1.x
- Removeduglify-js@1.0.x
- Removedargsparser@0.0.7(transitive)
- Removedcolors@0.5.1(transitive)
- Removedgzip@0.1.0(transitive)
- Removedjshint@0.2.3(transitive)
- Removedless@1.1.6(transitive)
- Removeduglify-js@1.0.7(transitive)