Понял. Посмотрите https://sentry.io/, он перехватывает и отправляет все эксепшены и console.error на сервер, где это можно потом посмотреть (с call stack'ом). Для индивидуальных проектов бесплатно.
Рамиль: дык найдите сервис, который работает с bitbucket:)
А мне необходимо до.
Коммунисты тоже хотели, чтобы все были хорошие, работали на совесть и брали не больше, чем нужно. К сожалению, это не работает, люди устроены по другому. Поэтому используется CI: тесты провалились, code style не соблюден → билд не собирается → деплой не происходит → баг считается не пофикшенным, фича не сделанной.
Code review тоже помогает. Пока код не прошел ревью, ветка не мерджится в мастер.
Да, это все требует дисциплины, но, к сожалению, таков мир.
loly: здравый смысл:) у меня в похожих случаях есть папка scripts в проекте, где лежат файлики типа downloadData.js, которые запускаются по cron'у. Эти скриптики используют часть кода из основного приложения (конфиги, данные для подключения к дб, модели).
gulp сам по себе ничего не умеет, это т.н. task-runner. То есть его ответственность — запускать какие-то задачи в определенном порядке. Чтобы собственно собрать проект, надо добавить плагинов (gulp-babel, gulp-browserify, gulp-sass и так далее, тысячи их).
webpack именно сборщик (или иногда говорят bundler), его ответственность — взять кучку файлов и выдать один (иногда несколько, но не суть:)), при необходимости — сжатый для продакшена. Из коробки он понимает только JS (во всех форматах модулей), для sass/less/stylus и прочего надо ставить т.н. loader'ы.
Теоретически gulp гораздо гибче и может делать гораздо больше, но на практике 95%, если не больше, может webpack. Так же возможно запускать webpack из gulp.
Я бы сказал, что оправданно, потому что разрабатывать с ним действительно удобно, а оверхед в продакшене один из самых маленьких. Но учтите, что у webpack все-таки довольно крутая кривая обучения, хотя в минимальном виде это и выглядит примерно как webpack -d --entry index.js --output-path dist/. Советую на первых порах брать готовые бойлерплейты (или что-то вроде create-react-app).
Я уже несколько лет пишу только es6-импорты, не жду милостей от природы:)
На данный момент есть два варианта:
транспиляция, превращающая import/export в commonjs (с последующей сборкой browserify при необходимости) или amd
загрузчики, понимающие import/export (и все остальные форматы модулей) и загружающие модули каким-то своим образом (es-module-loader, SystemJS, webpack)
Моя личная рекомендация это webpack, потому что понимает все из коробки плюс куча плюшек (live-reload, hot-reload, ленивая загрузка кода, не нужен grunt или, не дай боже, gulp).
Если речь о фабричном статическом методе класса, то this.name даст имя класса (если он не анонимный, конечно).
Но вообще лучше сделать совсем отдельно. Повторюсь, value object не должен знать, откуда он берется.