Мое понимание из документов
Я вижу, что Babel 6 имеет три предустановки: es2015, response и stage-x.
Я читал, что я могу установить те, что в .babelrc следующим образом:
{
  "presets": ["es2015", "react", "stage-0"]
}
или непосредственно в пакете. JSON:
{
  ...,
  "version": x.x.x,
  "babel": {
    "presets": ["es2015", "react", "stage-0"]
  },
  ...,
}
Я могу использовать babel-loader с webpack следующим образом:
loader: 'babel?presets[]=es2015'
 
Моя проблема
Итак, чтобы скомпилировать все красивое и чистое, я добавляю babel-loader, который только что был обновлен для работы с Babel6, в конфигурацию webpack следующим образом:
module.exports = function(options) {
  var jsLoaders = ['babel?presets[]=es2015'];
  [...]
    loaders: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loaders: jsLoaders
      },
      {
        test: /\.jsx$/,
        exclude: /node_modules/,
        loaders: options.production ? jsLoaders : ['react-hot'].concat(jsLoaders)
      },
      [...]
 
Теперь, когда я компилирую  без .babelrc в настройках root или пресетов, установленных в package.JSON, то есть только с предустановленной установкой babel-loader es2015, установленной в конфигурации webpack, я получаю неожиданную ошибку токена о static propTypes в мой класс компонентов React:
ERROR in ./app/components/form/index.jsx
Module build failed: SyntaxError: /Library/WebServer/Documents/yarsk.test/app/components/form/index.jsx: Unexpected token (19:19)
  17 | // ES6 React Component:
  18 | export default class SurveyForm extends Component {
> 19 |   static propTypes = {
     |                    ^
На GitHub мне сказали, что это функция stage-1, а именно transform-class-properties. Поэтому я хотел бы сразу реализовать stage-0.
 НО 
Когда я делаю это, добавляя .babelrc или определяя package.JSON, как описано выше, я получаю очень странную ошибку с ошибкой сборки:
ERROR in ./app/components/form/index.jsx
Module build failed: Error: /Library/WebServer/Documents/yarsk.test/app/components/form/index.jsx: We don't know what to do with this node type. We were previously a Statement but we can't fit in here?
    at NodePath.insertAfter (/Library/WebServer/Documents/yarsk.test/node_modules/babel-traverse/lib/path/modification.js:181:13)
    at NodePath.replaceWithMultiple (/Library/WebServer/Documents/yarsk.test/node_modules/babel-traverse/lib/path/replacement.js:92:8)
    at handleClassWithSuper (/Library/WebServer/Documents/yarsk.test/node_modules/babel-plugin-transform-class-constructor-call/lib/index.js:80:10)
    at PluginPass.Class (/Library/WebServer/Documents/yarsk.test/node_modules/babel-plugin-transform-class-constructor-call/lib/index.js:101:11)
    at newFn (/Library/WebServer/Documents/yarsk.test/node_modules/babel-traverse/lib/visitors.js:233:27)
    at NodePath._call (/Library/WebServer/Documents/yarsk.test/node_modules/babel-traverse/lib/path/context.js:72:18)
    at NodePath.call (/Library/WebServer/Documents/yarsk.test/node_modules/babel-traverse/lib/path/context.js:44:17)
    at NodePath.visit (/Library/WebServer/Documents/yarsk.test/node_modules/babel-traverse/lib/path/context.js:102:12)
    at TraversalContext.visitQueue (/Library/WebServer/Documents/yarsk.test/node_modules/babel-traverse/lib/context.js:151:16)
    at TraversalContext.visitSingle (/Library/WebServer/Documents/yarsk.test/node_modules/babel-traverse/lib/context.js:111:19)
    at TraversalContext.visit (/Library/WebServer/Documents/yarsk.test/node_modules/babel-traverse/lib/context.js:195:19)
    at Function.traverse.node (/Library/WebServer/Documents/yarsk.test/node_modules/babel-traverse/lib/index.js:139:17)
    at NodePath.visit (/Library/WebServer/Documents/yarsk.test/node_modules/babel-traverse/lib/path/context.js:106:22)
    at TraversalContext.visitQueue (/Library/WebServer/Documents/yarsk.test/node_modules/babel-traverse/lib/context.js:151:16)
    at TraversalContext.visitMultiple (/Library/WebServer/Documents/yarsk.test/node_modules/babel-traverse/lib/context.js:106:17)
    at TraversalContext.visit (/Library/WebServer/Documents/yarsk.test/node_modules/babel-traverse/lib/context.js:193:19)
    at Function.traverse.node (/Library/WebServer/Documents/yarsk.test/node_modules/babel-traverse/lib/index.js:139:17)
 @ ./app/index.jsx 9:0-28
Или одним словом: Module build failed: Error: /.../index.jsx: We don't know what to do with this node type. We were previously a Statement but we can't fit in here?
Вот где я застрял. Я написал этот компонент с Babel5, когда мне удалось скомпилировать с помощью babel-loader, и все было хорошо:
loader: 'babel?optional[]=runtime&stage=0
Теперь я получаю указанные компиляции ошибок.
-  Это проблема 
babel-loaderили проблемаbabel? -  Где мне нужно настроить 
stage-0, чтобы он не бросить ошибки? 
 
Update
При компиляции с настройками пресетов и использованием упомянутого обходного пути для ошибки экспорта класса (не должен экспортировать класс до момента его создания) порядок заданных пресетов изменяет сообщение об ошибке. Когда я устанавливаю stage-0, сначала ошибка теперь 'this' is not allowed before super() (This is an error on an internal node. Probably an internal error)
Когда я помещаю stage-0 второй или третий, я получаю сообщение о синтаксической ошибке сверху.
 
Последние
Для последних достижений в отношении этих ошибок см. мой пост или новый трекер проблем с буфером на фабрикатора. (В основном компиляция исправлена с 6.2.1, но теперь происходят другие вещи)
Все ошибки, упомянутые в этой статье, полностью исправлены с Babel 6.3.x. Обновите свои зависимости, если у вас все еще есть проблемы.