hawkerboy7 / de-builder Goto Github PK
View Code? Open in Web Editor NEWA Live Development Environment
License: MIT License
A Live Development Environment
License: MIT License
The exeptions on compiling coffeescript should be caught to prevent de-builder
from breaking.
Add the option to minify and/or uglify the bundle.
node build.js -prod -uglify
This trigger should be after all initial compiling is finished, now it's based on a timeout. If compiling a file takes longer than the time-out tasks like forever
or browserify
could be triggered a lot of times in a row and slow down the start-up.
Investigate and make use of TDD
or BDD
.
Determine if and how de-builder
should be running the tests.
The three time consuming parts of the build are the copy
, coffee
and browserify
tasks.
Running copy
and coffee
in parallel using multiple threads will improve the required waiting time, though how much is not clear.
This feature will ensure de-builder
won't need to restart after a folder / file with the same name is removed but still used.
Support PhoneGap build as well
When using node build.js -prod
do not start the application but close the process once all budles have been created.
This way pm2 stop X;node build.js -prod;pm2 start X
will complete by itself
When making a -prod
build make sure the bundles are obfuscated and all files from /css
& /js
are removed after the bundle has been made (excluding the bundles themselves). This way there won't be any normally readable client-side code left behind and available to end-users. It is not hard to find.
Ensure the browser-sync
js is not blindly added to vendor but takes the argument value(s) of the builder config file.
Do not attempt to add if no value is provided or the provided value is not found (just log a warning in this case).
On init and normally ensure it is clear less
and browserify
are (still) creating their bundles, so you know there is still something happening
Make browser-sync use
different ports from 9000
and 9001
when they are not available. Also check that the browser-sync
js file is then downloaded using that new port. This change will allow multiple instances of de-builder
running next to each other without causing a conflict. Also log on which port browser-sync
runs when it is different from the base port 9000
.
By default listening to de-builder socket.io event's on default port 8009 should be switched off and be turned on with: enabled: true
If you use the --start
argument it should also create all required entry files.
Due to incorrect settings in browserify
not all aspects of node-webkit
can be used. I don't know exactly which options to set to true or false. See browserify/browserify#1277
For LDE 3 browserify
is mostly used because it bundles the .jade
files. If I cannot get browserify
to work correctly, it's also possible to not use it.
This then means all .jade
files have to be compiled to .js
files by a jade task so they can be required.
This also means the jade/runtime
has to be added to the DOM by the user's program (which is a less 'out-of-the-box' option and thus I don't like it so much)
Add the options to use multiple bundles.
So for example a vendor bundle which contains jQuery, Backbone, Underscore etc. and an application bundle which only contains data for your own JavaScript application.
This way running browserify should be faster due to the fact less data has to be bundled every time a save occurs in the application.
Add support for sass
Ensure -prod
builds are minified
and uglified
. Add the option to minify
and/or uglify
the bundle on dev as well using: -uglify
and/or -minify
arguments. Using -prod
automatically makes -minify
and -uglify
true, but if you explicitly set them when using -prod
they become disabled instead, to allow for a non-minified
and/or non-uglified
prod build to be made. Not sure yet if this is needed.
Switching git branches should cause the file watcher to see the changes but not act upon them for +-0.4s seconds or so.
Perhaps always add a change delay of +-0.4s which makes it wait until there are no changes for that duration and then trigger each of the changed parts once instead of "for-every-change". This should auto-include the git branch change issue.
This issue can be solved by always checking / creating the folders on start up
Add the option to download and install default projects like: de-base
and de-nw-base
by providing arguments: like --de-base
and --de-nw-base
In creating the project folders something goes wrong due to the async of creating folders but not using a callback to wait for them before starting the project itself.
The child process running the application does not always get closed for some reason.
Try to ensure the child-process is closed before the builder restarts AND try to find any previous running processes and close them before trying to run a new one.
Also check if the browserify-watchify-jadeify combination now supports the latest browserify version (it didn't before). So we're up to date!
If the coffee task for example has an error and shuts down the program by throwing an error, forever doesn't shutdown it's child. The coffee task shouldn't throw the error (so better handling is required over there) and forever shouldn't let it's child processes run after it shutdown.
Running a copy
of a pug
file server side does not restart the application though it should.
Provide the option to notify the user of warnings and errors trough the system notification module
Because Jadeify needs a runtimePath the complete path on the filesystem gets exposed in the browserify bundle.js This should be resolved.
Sometimes forever
keeps running a previous instance. It should always clear previous instances any way it can. Perhaps a check could be added which checks if the name of the project is already running and if so close the process (or kill it after X seconds of not responding) .
Either use something which works already or build something so all npm audit
errors are resolved.
On init when logging the Coffee and Copy info messages by default they should replace the existing message instead of being added.
Do add an option when building --verbose
to do log them all + log debug
messages as well
The clean does not get executed on the /build
folder at any point in time, which results in old files not being removed.
Clean should run immediately in dev
mode and in prod
mode it works as it should already.
node build -prod
should end and not start forever
. This way a build on the server can complete by itself because the program ends when finished. pm2 stop X;node build -prod;pm2 start X
will be able to run by itself
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.