This is the scoring system for plugins. There may be exceptions in certain edge cases, but this should provide enough feedback to keep people on the right track.
Package | Reason | Recommended Solution |
---|---|---|
gulp | Creates incompatible plugins | Don't do this. Use vinyl for your tests. |
colors | Extends global prototypes | Use chalk |
through | Old streams | Use through2 |
event-stream | Old streams + bloated kitchen sink | Use through2 or other streams2 pattern libraries |
Behavior | Recommended Solution |
---|---|
file with null contents not passed through | Pass them through immediately |
file with null contents was mutated | Pass them through immediately - do not modify them |
file output contents type different than input | Put out the same type you put in |
file with streaming contents not handled correctly | Emit an error or support it |
Behavior | Recommended Solution |
---|---|
console.log | Use gulp-util .log |
require('fs') | Plugins should not read/write - gulp handles that |
index.js > 100 lines | Break it up into multiple modules/files |
High code complexity | Break it up into multiple modules/files |
Behavior | Recommended Solution |
---|---|
Tests failing | Fix your tests |
No tests | Write tests |
No source link | package.json link to github |
Plugins will be manually checked and deductions will result from the following items.
- Can be done with existing node modules (doesn't need to be a plugin)
- Doing multiple things in a plugin
- Excess configuration
- Duplication of functionality already existing in another plugin
- Aggregating multiple
gulpplugins
- Poorly documented