feat(config): Mongo Seed 2.0
Adds a more configurable and easily extended MongoDB Seed feature.
Adds additional options at the collection, and collection item level to
allow more control over how each environment config handles the seeding
feature.
Enforces seed order based on the order of the environment's seeding configuration object.
Removes the previous SeedDB config file.
Adds chalk to messages logged to the console for readability.
Refactors the Mongo Seed configuration tests.
Adds Gulp tasks to perform Mongo Seed operations for default, prod, and
test environment configurations. Also, adds accommodating npm scripts.
Turns on mangling for uglify (minified javascript for production).
Previously this might've caused issues with AngularJS, but since we are now using `ngAnnotate`, those issues are gone.
https://github.com/mishoo/UglifyJS2#minify-options
Upgrades Mongoose to 4.11.1
Updates Mongoose connection implementation to accommodate deprecated
features & connection options.
Also, updates the Gulp Mocha tasks to reflect changes to the Mongoose
implementation.
Fixes tests to get the database from the existing Mongoose singleton.
Derives from changes in https://github.com/meanjs/mean/pull/1816
Closes https://github.com/meanjs/mean/issues/1814
* Test against Node.js 8
Configure Travis CI test against Node.js 8 and allow failures.
Node.js 8 release notes: https://nodejs.org/en/blog/release/v8.0.0/
* Updates to TravisCI
* Refactor picking debug argument for different Node.js versions
* feat(gulp): replacing the unmaintained gulp-livereload with gulp-refresh
Replacing the unmaintained gulp-livereload with gulp-refresh (#1552)
* ~ instead of ^ for gulp-refresh package
* fix(core): updating old package dependencies
* mistaken updated the wrong package
* updating gulpfile with new csslint package
* updating old gulpfile usage with the failformatter option of csslint
* updating package.json for original version of airbnb supported version
* resolving eslint issue
* eslint back to original package
* updating no failure of CSS issues
Fixes an issue with an empty/missing/null Email coming from GitHub's
OAuth call response.
Also, introduces the `sparse` index option on the User model's Email
field. This will ensure that we can have multiple User documents without
the Email field.
Adds a server-side User model test for the sparse index setting on the
email field.
Confirms that User documents without the email field are not indexed,
illustrating the sparse option on the schema's email field works
properly.
Added the dropdb task to the Gulp test:client & test:server tasks, to
ensure we have a clean database & that any indexes are rebuilt; this
will ensure any Schema changes (in this case the email index is rebuilt using
the sparse index option) are reflected when the database is started again.
Added a UPGRADE.md for tracking important upgrade information for our
user's to be aware of, when we introduce potentially breaking changes.
Included an explanation of the Sparse index being added, and how to apply it
to an existing MEANJS application's database.
Adds a script for dropping the `email` field's index from the User
collection.
Related #1145
Sets the behavior of the test:server:watch Gulp task to only run a single
test suite if the modified server file is a test suite. Previously this was
acheived through the use of the `onlyChanged` parameter. The parameter has
been removed since this is almost certainly the only use case.
Also, refactors this Gulp task to be a stand-alone watch task rather than
including it in the 'watch' task.
Removed the need for using yargs library, and removed the yargs package
from the framework.
Closes#1297
Adds a task to copy the example local environment config example, and save
it as a development environment config.
Renamed the task for Gulp from copy:localConfig (Grunt naming convention) to
copyLocalEnvConfigExample.
Releated #1175
Fixes an error occurring when running `gulp`:
```bash
/mean/gulpfile.js
199:22 error A space is required after '{' object-curly-spacing
199:42 error A space is required before '}' object-curly-spacing
```
Adds a Gulp task that watches all server files (including server tests),
and upon any changes it will perform the Gulp *test:server* task.
Added a watch for server assets, to the main gulp watch config. This will only
add the watch when the NODE_ENV is set to "test".
Also, includes an **optional** argument for the task that can specify
that if the changed file is a test, then it will only run that test
file.
Example usage: gulp test:server:watch --onlyChanged