Как установить разрешение для предустановок барабанщика-загрузчика

Я пытаюсь сделать пакет с webpack. У меня немного сложная зависимость: некоторые компоненты требуют других, которые находятся в некоторой папке /home/.../.

Компонент (/home/.../far-away-components/base-component.js файл):

import {base_component} from "base-component";
exports class MyComponent extends base_component {
   ...
}

webpack.config.js:

var path = require("path");
module.exports = {
    ...
    module: {
        loaders: [
            {
                test: /\.(js)$/,
                loader: "babel",
                query: {
                    presets: ['react', 'es2015', "stage-0"]
                }
            }
        ]
    },
    resolve: {
        alias: {
            "base-component": "/home/.../far-away-components/base-component.js"
    }
};

Проблема заключается в том, что папка far-away-components не содержит node_modules, и я получаю сообщение об ошибке: Couldn't find preset "react" relative to directory "/home/.../far-away-components".

Как установить resolve для babel-loader пресетов?

Ответы

Ответ 1

Решение из проблемы github:

query: {
  presets: [
    'babel-preset-es2015',
    'babel-preset-react',
    'babel-preset-stage-0',
  ].map(require.resolve),
}

Ответ 2

@mqklin: вам понадобилась эта работа, используя ".map(require.resolve)", потому что вы не исключили/ node_modules/в своих загрузчиках. Должен работать следующий формат:

    loaders: [
  {
    test: [/\.js$/, /\.es6$/],
    exclude: /node_modules/,
    loader: 'babel-loader',
    query: {
      cacheDirectory: true,
      presets: ['react', 'es2015'],
    }
  }
]

Ответ 3

Как пропустить

npm init

в папке /home/.../far-away-components, а затем используйте npm для установки того, что вам нужно.