Comments (5)
A custom registry can do tons of things.
How I would handle this:
- Come up with a convention for internal tasks (like prefix with double underscore, e.g.
__copyHtml
) - Inside the custom registry's
.set()
method, check if the name has the double underscore, and if it does, add it to a separate object attached to your custom registry. Also, make sure to bind the context and return the newly bound function in this method. - Inside the custom registry's
.get()
method, check the name for double underscores and fetch out of the correct object. - Inside the custom registry's
.tree()
method, only return public tasks. This method is used for exposing things to the CLI. - Inside the custom registry's
.init()
method, register all tasks (public and private).
I think the above solution solves all your problems. The implementation for custom registries had a ton of thought behind it to allow you to implement these types of things but you need to think thoroughly about the solution. This is a highly advanced feature for gulp and you can do lots of wonderful and scary things.
from undertaker.
I threw something together to bind my functions before I passed them in to series and parallel and discovered that then makes my tasks tree say they are all the same function name. I'm guessing it relates to gulpjs/gulp#1159
As it is it looks to me like the cleanest solution is to just wrap in a factory function and close over the config parameter.
from undertaker.
Ok thanks that gave me some ideas. I'm going to see if I can find a way to do it without the abstraction enforcing the task functions to need to be prefixed with a double underscore.
from undertaker.
@mikehaas763 was this the same thing as #32 ? I'd like to close that one if so
from undertaker.
No it's not.
from undertaker.
Related Issues (20)
- Undertaker links to protestware - blocks pipelines HOT 1
- Can't get task description and flags because returning wrapped function HOT 7
- Error handling HOT 5
- Tasks composition without gulp HOT 5
- Error run gulp serve HOT 2
- Test fails on Node v6.9.1+ HOT 3
- Consider removing lodash modules
- Series/parallel arguments should not have 0 length
- Add test for array as only argument in series/parallel
- settle not working with es2015 async functions HOT 1
- stack trace is unintelligible since error is not serialized properly HOT 1
- Custom registry must have `get` function HOT 2
- timeResolution -> precision
- Raise node version minbar to 0.12 to eliminate the biggest dependencies HOT 1
- Sharing Functionalities example not working for `serial` and `parallel` tasks. HOT 1
- Build failing with AssertionError: Task function must be specified HOT 2
- TypeError: browserSync is not a function HOT 1
- Remove UNDERTAKER_TIME_RESOLUTION HOT 2
- Update repository scaffold
- Namespace 'Undertaker' has no exported member 'TaskCallback'. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from undertaker.